Submit feedback about Claude MCP skills directly from your conversations.
Report bugs, request enhancements, or propose new skills - all tracked in ServiceNow SBOs with full conversation context.
git clone https://github.com/ServiceNow/saai-skill-feedback.git
cd saai-skill-feedback/mcp-server
./install.shJust tell Claude:
"Report a bug with create-sbo-request"
"Request an enhancement to make dashboard lookups fuzzy"
"Request a new skill for Jira ticket management"
Claude will auto-detect which skill you're talking about and submit the feedback with full context.
Instead of manually filing bug reports or feature requests, just mention it in your Claude conversation:
- Auto-detects which skill from conversation history
- Captures context automatically (tool calls, errors, parameters)
- Enriches feedback with technical details
- Creates SBOs in ServiceNow for tracking
- Assigns to maintainer automatically
When something doesn't work, just say:
"Report a bug - the dashboard lookup failed"
Claude will:
- Find which tool was called
- Extract the error message
- Capture parameters used
- Create SBO with all details
When you want improvements:
"Request enhancement - support partial dashboard names"
Claude will:
- Describe current behavior
- Explain desired behavior
- Capture use case
- Submit enhancement request
When you need something new:
"Request a skill for Jira ticket management"
Claude will:
- Capture the use case
- Extract requirements
- Create new skill request SBO
See docs/INSTALL.md for detailed setup instructions.
Requirements:
- Node.js 18+
- Python 3.8+
- ServiceNow account (surf.service-now.com)
Quick install:
cd mcp-server
./install.shThis will:
- Install Node.js and Python dependencies
- Authenticate with ServiceNow (browser-based)
- Show you the config to add to Claude
Add to your Claude config file:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"saai-skill-feedback": {
"command": "node",
"args": ["/absolute/path/to/saai-skill-feedback/mcp-server/index.js"]
}
}
}Claude Code (~/.config/claude/config.json):
{
"mcpServers": {
"saai-skill-feedback": {
"command": "node",
"args": ["/absolute/path/to/saai-skill-feedback/mcp-server/index.js"]
}
}
}When you say "report a bug", Claude:
- Scans recent conversation (last 10-15 messages)
- Finds the last MCP tool call
- Extracts the skill name
- Captures relevant context
For bug reports, captures:
- Tool name and parameters
- Error messages
- Expected vs actual behavior
- User's description
For enhancements:
- Current limitation
- Desired improvement
- Use case and benefits
For new skills:
- Problem to solve
- Expected functionality
- Why existing skills don't work
Creates ServiceNow SBO with:
- Title: "{emoji} {type}: {skill_name}"
- Description: Full feedback with context
- Work Activity: "Platform Dev - Security BOS App"
- Assigned to: David Rider (skill maintainer)
- State: Opened
User: "Create an SBO for fixing the security dashboard"
[Tool error: Dashboard not found]
User: "Report a bug - it should find partial matches"
Claude: [Auto-detects skill_name="create-sbo-request"]
Claude: [Captures error and parameters]
Claude: [Submits SBO with enriched context]
Claude: "✓ Feedback submitted as SBO DSRT0123456"
User: "It would be great if the tool supported date ranges"
Claude: "Would you like me to submit that as an enhancement?"
User: "Yes"
Claude: [Detects skill from recent usage]
Claude: [Captures current behavior vs desired]
Claude: [Submits enhancement SBO]
User: "I wish I could query Snowflake from Claude"
Claude: "I don't have that capability. Want me to request a new skill?"
User: "Please"
Claude: [No skill detection needed - it's a new skill]
Claude: [Captures use case and requirements]
Claude: [Submits new skill request SBO]
- docs/CLAUDE.md - Detailed Claude instructions
- docs/INSTALL.md - Installation guide
- docs/TEAM_MESSAGE.md - How to roll out to your team
| Type | When to Use | Example |
|---|---|---|
| bug | Something is broken | Dashboard lookup fails, tool returns error |
| enhancement | Improve existing feature | Add fuzzy matching, support date ranges |
| new_skill | Need new functionality | Jira integration, Snowflake queries |
- Instance: https://surf.service-now.com
- Table:
x_snc_security_d_0_dsrtable(Security BOS) - Assignee: David Rider (skill maintainer)
- Work Activity: Platform Dev - Security BOS App
All feedback is tracked as standard SBO requests in ServiceNow.
Uses the same browser-based authentication as other ServiceNow skills:
- Run install script
- Browser opens for Okta login
- Complete MFA
- Credentials cached at
~/.servicenow_surf_session.json - Auto-refreshes when expired
See docs/INSTALL.md for authentication details.
Tool not showing up?
- Restart Claude completely
- Start a NEW conversation
- Check config file path is absolute (not relative)
Authentication errors?
- Re-run:
python3 src/utils/login_and_extract.py - Complete browser login
- Check credentials:
ls -la ~/.servicenow_surf_session.json
Can't detect skill?
- Mention skill explicitly: "report a bug with create-sbo-request"
- Claude will ask if truly ambiguous
saai-skill-feedback/
├── mcp-server/
│ ├── index.js # MCP server entry point
│ ├── package.json # Node dependencies
│ └── install.sh # Installer script
├── src/
│ ├── submit_feedback.py # Feedback submission logic
│ └── utils/
│ ├── session_manager.py # ServiceNow auth
│ └── login_and_extract.py # Browser automation
└── docs/
├── CLAUDE.md # Instructions for Claude
├── INSTALL.md # User installation guide
└── TEAM_MESSAGE.md # Rollout templates
- Node.js: MCP server using @modelcontextprotocol/sdk
- Python: ServiceNow API integration
- Selenium: Browser automation for auth
- ServiceNow REST API: SBO creation
Edit src/submit_feedback.py:
EMOJI_MAP = {
'bug': '🐛',
'enhancement': '✨',
'new_skill': '💡',
'your_new_type': '🎯', # Add here
}Feedback about the feedback skill? Report it using the feedback skill! (meta)
Or submit issues/PRs on GitHub.
MIT License - See LICENSE file
Built by the Security Analytics team at ServiceNow.
Uses the Model Context Protocol (MCP) from Anthropic.