dobbe auto-discovers MCP (Model Context Protocol) servers from your Claude Code configuration and uses them for enhanced capabilities.
MCP servers are plugins that extend Claude Code’s capabilities by providing access to external APIs and services. When Claude Code is configured with MCP servers, dobbe detects them and includes the corresponding tools in agent prompts.
dobbe reads MCP configuration from two locations:
~/.claude/settings.json → mcpServers section.claude/settings.json → mcpServers sectionIt also checks enabledPlugins in both files.
Each server name, command, and args are matched against known patterns to classify which service it provides. Results are cached for the session.
In addition, dobbe discovers MCP servers installed by marketplace plugins via discover_plugin_mcp_prefixes(). This function reads ~/.claude/plugins/installed_plugins.json, inspects each plugin’s .mcp.json, cross-references with enabledPlugins, and returns tool prefix globs for any plugin-installed servers not already covered by the built-in known MCPs. This allows dobbe to dynamically support new MCP integrations without code changes.
Detection patterns: name/command/args containing “github”
Tool prefix: mcp__github__*
What it enables:
gh CLI fallbackFallback behavior: When the GitHub MCP is not available, dobbe instructs Claude to use gh api commands via the Bash tool. This is slower but functionally equivalent.
Used by: vuln scan, vuln resolve, review digest, review post, audit, deps, test, changelog, migration, metrics, workflow
Detection patterns: name/command/args containing “slack”, or enabledPlugins entry containing “slack”
Tool prefix: mcp__claude_ai_Slack__*
What it enables:
Setup: Configure the Slack MCP in Claude Code, then use --notify slack --channel "#your-channel" with any command that supports --notify.
Used by: vuln scan (with --notify slack), review digest (with --notify slack), audit (with --notify slack), deps (with --notify slack), incident (with --notify slack), insight (with --notify slack), metrics (with --notify slack), changelog (with --notify slack)
Detection patterns: name/command/args containing “atlassian”, “jira”, or “confluence”, or enabledPlugins entry containing “atlassian” or “jira”
Tool prefix: mcp__claude_ai_Atlassian__*
What it enables:
Setup: Configure the Atlassian MCP in Claude Code, then use --notify jira with any command that supports --notify.
Used by: vuln scan (with --notify jira), audit (with --notify jira), deps (with --notify jira), incident (with --notify jira), migration (with --notify jira), metrics (with --notify jira)
Detection patterns: name/command/args containing “sentry”, or enabledPlugins entry containing “sentry”
Tool prefix: mcp__claude_ai_Sentry__*
What it enables:
incident commands)Used by: incident triage (primary – required), incident resolve (primary – required), vuln scan, vuln resolve
Detection patterns: name/command/args containing “figma”, or enabledPlugins entry containing “figma”
Tool prefix: mcp__claude_ai_Figma__*
What it enables:
Used by: Currently discovered but not actively used by any command
When an MCP is discovered, dobbe adds its tool prefix to the --allowedTools list for relevant agents:
github -> mcp__github__*
slack -> mcp__claude_ai_Slack__*
atlassian -> mcp__claude_ai_Atlassian__*
sentry -> mcp__claude_ai_Sentry__*
figma -> mcp__claude_ai_Figma__*
unknown -> mcp__{name}__*
plugin MCP -> mcp__plugin_{plugin_name}_{server_name}__*
user extra -> (literal value from config.toml [tools] extra_allowed)
In addition to auto-discovered MCPs, you can explicitly allow extra tools via your config.toml:
[tools]
extra_allowed = [
"mcp__my_custom_server__*",
"mcp__internal_api__query",
]
These patterns are appended to the --allowedTools list alongside auto-discovered MCP prefixes and plugin MCP prefixes. This is useful for:
The get_extra_tools() function reads the [tools] extra_allowed list from config and returns it as-is. These are merged with auto-discovered prefixes in the discover_tools() helper that every command calls at startup.
The discover_plugin_mcp_prefixes() function handles MCP servers installed by Claude Code marketplace plugins:
~/.claude/plugins/installed_plugins.json for the plugin registry.mcp.json at its install path (supports both {"mcpServers": {...}} wrapper and flat formats)enabledPlugins in ~/.claude/settings.json – only enabled plugins are includedmcp__plugin_{plugin_name}_{server_name}__*Results are cached for the session. Call invalidate_plugin_mcp_cache() to force re-discovery.
Run dobbe doctor to see which MCPs are detected:
dobbe doctor
The doctor output includes checks for:
Or run dobbe setup which reports all discovered MCPs in Step 3.
Add to your Claude Code settings (~/.claude/settings.json):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
}
}
}
}
Use Claude Code’s built-in Slack integration or add a custom MCP server. The built-in integration appears in enabledPlugins and is auto-detected.
Use Claude Code’s built-in Atlassian integration or configure a custom MCP server. The built-in integration appears in enabledPlugins.
Use Claude Code’s built-in Sentry integration or configure a custom MCP server.