{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"com.ngrok/mcp","description":"Manage ngrok from your agent: endpoints, domains, and traffic policy.","title":"ngrok","version":"0.1.0","websiteUrl":"https://ngrok.com/docs","remotes":[{"type":"streamable-http","url":"https://mcp.ngrok.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-30T16:09:03.596895Z","publishedAt":"2026-10-30T16:09:03.596895Z","updatedAt":"2026-10-30T16:09:03.596895Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"Discover A2A services from MCP. Programmable enrollment, no wallet required. Public pilot.","title":"AgentBridge — MCP to A2A Discovery","version":"0.9.1-rc.17","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/mcp","headers":[{"value":"Bearer {agent_token}","variables":{"agent_token":{"description":"Create your own token using the Ed25519 registration flow at https://sympathy-myself-jogger.ngrok-free.dev/public/usage","isRequired":true,"isSecret":true}},"name":"Authorization"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","registration":"self-service Ed25519","scope":"configured A2A discovery; no MCP execution or public payments"}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-14T00:09:58.914704Z","publishedAt":"2026-10-14T00:09:58.914704Z","updatedAt":"2026-10-14T00:09:58.914704Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"MCP gateway to A2A discovery and free tool recommendations. Self-service enrollment; no wallet.","title":"AgentBridge — MCP and A2A Service Bridge","version":"0.9.1-rc.18","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/mcp","headers":[{"value":"Bearer {agent_token}","variables":{"agent_token":{"description":"Create your own token using the Ed25519 registration flow at https://sympathy-myself-jogger.ngrok-free.dev/public/usage","isRequired":true,"isSecret":true}},"name":"Authorization"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","registration":"self-service Ed25519","scope":"configured A2A discovery and one pinned free A2A guidance contract; no public payments"}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-14T00:15:20.133474Z","publishedAt":"2026-10-14T00:15:20.133474Z","updatedAt":"2026-10-14T00:15:20.133474Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"MCP gateway to A2A discovery and free tool recommendations. Self-service enrollment; no wallet.","title":"AgentBridge — MCP and A2A Service Bridge","version":"0.9.1-rc.19","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/mcp","headers":[{"value":"Bearer {agent_token}","variables":{"agent_token":{"description":"Create your own token using the Ed25519 registration flow at https://sympathy-myself-jogger.ngrok-free.dev/public/usage","isRequired":true,"isSecret":true}},"name":"Authorization"},{"value":"1","name":"ngrok-skip-browser-warning"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","registration":"self-service Ed25519","scope":"configured A2A discovery and one pinned free A2A guidance contract; no public payments","supportedProtocolVersions":["2025-11-25","2025-06-18"]}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-14T11:35:12.743274Z","publishedAt":"2026-10-14T11:35:12.743274Z","updatedAt":"2026-10-14T11:35:12.743274Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"MCP to A2A discovery and free tools. Autonomous machine authentication; no wallet or human login.","title":"AgentBridge — MCP and A2A Service Bridge","version":"0.9.1-rc.20","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/mcp","headers":[{"value":"1","name":"ngrok-skip-browser-warning"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","authorizationMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-authorization-server","humanInteractionRequired":false,"onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","protectedResourceMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-protected-resource/mcp","registration":"autonomous OAuth client_credentials/private_key_jwt with public Ed25519 JWK registration; legacy direct enrollment also available","scope":"bridge:free; configured A2A discovery and one pinned free A2A guidance contract; no public payments","supportedProtocolVersions":["2025-11-25","2025-06-18"]}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-14T18:05:41.425051Z","publishedAt":"2026-10-14T18:05:41.425051Z","updatedAt":"2026-10-14T18:05:41.425051Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"MCP to A2A discovery without signup. Browse public capabilities; authenticate for free execution.","title":"AgentBridge — Discover A2A Services from MCP","version":"0.9.1-rc.21","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/discovery/mcp","headers":[{"value":"1","name":"ngrok-skip-browser-warning"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","authorizationMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-authorization-server","executionEndpoint":"https://sympathy-myself-jogger.ngrok-free.dev/mcp","humanInteractionRequired":false,"keywordSearch":"https://sympathy-myself-jogger.ngrok-free.dev/public/services?protocol=a2a\u0026q=","onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","protectedResourceMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-protected-resource/mcp","publicServiceCatalog":"https://sympathy-myself-jogger.ngrok-free.dev/public/services","registration":"No registration for public discovery; machine identity required for execution","scope":"public descriptors only; no provider execution or payment from the discovery endpoint","supportedProtocolVersions":["2025-11-25","2025-06-18"]}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-14T22:21:01.869589Z","publishedAt":"2026-10-14T22:21:01.869589Z","updatedAt":"2026-10-14T22:21:01.869589Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"Discover A2A services and execute free contracts from MCP. Machine authentication.","title":"AgentBridge — Discover A2A Services from MCP","version":"0.9.1-rc.26","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/discovery/mcp","headers":[{"value":"1","name":"ngrok-skip-browser-warning"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"a2aCompatibility":"The separate /discovery/a2a endpoint supports synchronous SendMessage and message/send; no streaming or push delivery.","agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","authorizationMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-authorization-server","executionEndpoint":"https://sympathy-myself-jogger.ngrok-free.dev/discovery/mcp","humanInteractionRequired":false,"keywordSearch":"https://sympathy-myself-jogger.ngrok-free.dev/public/services?protocol=a2a\u0026q=","onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","protectedResourceMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-protected-resource/discovery/mcp","publicServiceCatalog":"https://sympathy-myself-jogger.ngrok-free.dev/public/services","registration":"Discover without signup. On execution 401, register an Ed25519 public key and use OAuth client_credentials/private_key_jwt with resource equal to the discovery endpoint. Retain the MCP session.","resultRecovery":"Keep requestKey and call execution_status; token renewal preserves identity and existing results.","scope":"Anonymous discovery; authenticated execute and execution_status for approved free contracts on the same endpoint. No public payments.","supportedProtocolVersions":["2025-11-25","2025-06-18"],"tools":["discover","execute","execution_status"]}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-15T18:03:38.734622Z","publishedAt":"2026-10-15T18:03:38.734622Z","updatedAt":"2026-10-15T18:03:38.734622Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"Discover A2A services and execute free contracts from MCP. Machine authentication.","title":"AgentBridge — Discover A2A Services from MCP","version":"0.9.1-rc.28","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/discovery/mcp","headers":[{"value":"1","name":"ngrok-skip-browser-warning"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"a2aCompatibility":"Separate /discovery/a2a supports synchronous SendMessage and message/send. Authenticated free actions read public repository documentation or answer a question through DeepWiki. Find explicitTool schemas at /public/services?protocol=mcp. No streaming or push delivery.","agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","authorizationMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-authorization-server","executionEndpoint":"https://sympathy-myself-jogger.ngrok-free.dev/discovery/mcp","explicitTools":"tools/list provides complete schemas. free_agenthub-free-guidance recommends document/web utilities with declared prices; it does not execute or purchase suggested services. Supply requestKey and arguments; do not supply contractId.","humanInteractionRequired":false,"keywordSearch":"https://sympathy-myself-jogger.ngrok-free.dev/public/services?protocol=a2a\u0026q=","modernHttp":"2026-07-28 supports server/discover, tools/list and tools/call with per-request metadata and matching MCP-Protocol-Version, Mcp-Method and Mcp-Name headers. No initialize/session. JSON response mode; subscriptions and input requests not offered.","onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","protectedResourceMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-protected-resource/discovery/mcp","publicServiceCatalog":"https://sympathy-myself-jogger.ngrok-free.dev/public/services","registration":"Discover without signup. On execution 401, register an Ed25519 public key and use OAuth client_credentials/private_key_jwt with resource equal to the discovery endpoint. For 2025 retain the session; 2026 HTTP is stateless.","resultRecovery":"Keep requestKey and call execution_status; token renewal preserves identity and existing results.","scope":"Anonymous discovery; authenticated execute and execution_status for approved free contracts on the same endpoint. No public payments.","supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18"],"tools":["discover","execute","execution_status","free_agenthub-free-guidance"]}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-16T11:11:52.857735Z","publishedAt":"2026-10-16T11:11:52.857735Z","updatedAt":"2026-10-16T11:11:52.857735Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"dev.ngrok-free.sympathy-myself-jogger/agentbridge","description":"Free repository documentation for MCP and A2A agents. Bounded no-signup trial with shared cache.","title":"AgentBridge — Discover A2A Services from MCP","version":"0.9.1-rc.29","websiteUrl":"https://sympathy-myself-jogger.ngrok-free.dev/llms.txt","remotes":[{"type":"streamable-http","url":"https://sympathy-myself-jogger.ngrok-free.dev/discovery/mcp","headers":[{"value":"1","name":"ngrok-skip-browser-warning"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"a2aCompatibility":"Separate /discovery/a2a supports synchronous SendMessage and message/send. Explicit free_* actions support a bounded guest trial without signup, reading repository documentation or answering questions through DeepWiki. Find schemas at /public/services?protocol=mcp. Shared cache by public arguments; no guest status/history, streaming or push delivery.","agentCard":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/agent-card.json","authorizationMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-authorization-server","executionEndpoint":"https://sympathy-myself-jogger.ngrok-free.dev/discovery/mcp","explicitTools":"tools/list provides full schemas for free_* tools on both provider protocols. Supply requestKey and arguments, not contractId. Guest inputs must be public; results may be cached by arguments. Guidance only recommends tools; it never buys them.","guestLimits":{"concurrency":2,"newArgumentSetsPerRollingDay":100,"newArgumentSetsPerRollingHour":20},"humanInteractionRequired":false,"keywordSearch":"https://sympathy-myself-jogger.ngrok-free.dev/public/services?protocol=a2a\u0026q=","modernHttp":"2026-07-28 supports server/discover, tools/list and tools/call with per-request metadata and matching MCP-Protocol-Version, Mcp-Method and Mcp-Name headers. No initialize/session. JSON response mode; subscriptions and input requests not offered.","onboarding":"https://sympathy-myself-jogger.ngrok-free.dev/public/usage","protectedResourceMetadata":"https://sympathy-myself-jogger.ngrok-free.dev/.well-known/oauth-protected-resource/discovery/mcp","publicServiceCatalog":"https://sympathy-myself-jogger.ngrok-free.dev/public/services","registration":"No signup needed for advertised free_* trial tools. For account execution/history follow OAuth onboarding; private history remains authenticated.","resultRecovery":"Guest: repeat the same explicit tool and arguments for its cached result; no guest status/history. Account: keep requestKey and use execution_status. No automatic replacement of uncertain operations.","scope":"Public discovery and bounded free_* guest executions. Generic execute, durable account history and payments are not available anonymously. No public payments.","supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18"],"tools":["discover","execute","execution_status","free_agenthub-free-guidance","free_deepwiki-public-structure","free_deepwiki-public-question"]}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-16T22:44:14.490796Z","publishedAt":"2026-10-16T22:44:14.490796Z","updatedAt":"2026-10-16T22:44:14.490796Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.IcyHot09/opengrok","description":"MCP server bridging OpenGrok indices with AI for deep, instant context across massive codebases.","repository":{"url":"https://github.com/IcyHot09/opengrok-mcp-server","source":"github"},"version":"3.3.4","packages":[{"registryType":"npm","identifier":"opengrok-mcp-server","version":"3.3.4","transport":{"type":"stdio"}}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"deprecated","statusChangedAt":"2026-03-15T22:13:47.7011Z","statusMessage":"Renamed to io.github.IcyHot09/opengrok-mcp-server","publishedAt":"2026-03-14T11:40:53.992836Z","updatedAt":"2026-03-15T22:13:47.7011Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.IcyHot09/opengrok","description":"MCP server bridging OpenGrok search engine with AI for instant context across massive codebases.","title":"OpenGrok MCP Server","repository":{"url":"https://github.com/IcyHot09/opengrok-mcp-server","source":"github"},"version":"3.3.5","packages":[{"registryType":"npm","identifier":"opengrok-mcp-server","version":"3.3.5","transport":{"type":"stdio"}}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"deprecated","statusChangedAt":"2026-03-15T22:13:47.7011Z","statusMessage":"Renamed to io.github.IcyHot09/opengrok-mcp-server","publishedAt":"2026-03-15T14:38:33.311153Z","updatedAt":"2026-03-15T22:13:47.7011Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.IcyHot09/opengrok-mcp-server","description":"MCP server bridging OpenGrok search engine with AI for instant context across massive codebases.","title":"OpenGrok MCP Server","repository":{"url":"https://github.com/IcyHot09/opengrok-mcp-server","source":"github"},"version":"4.0.0","packages":[{"registryType":"npm","identifier":"opengrok-mcp-server","version":"4.0.0","transport":{"type":"stdio"}}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-03-15T22:13:14.331448Z","publishedAt":"2026-03-15T22:13:14.331448Z","updatedAt":"2026-03-15T22:13:14.331448Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.IcyHot09/opengrok-mcp-server","description":"MCP server bridging OpenGrok search engine with AI for instant context across massive codebases.","title":"OpenGrok MCP Server","repository":{"url":"https://github.com/IcyHot09/opengrok-mcp-server","source":"github"},"version":"9.0.1","websiteUrl":"https://github.com/IcyHot09/opengrok-mcp-server","packages":[{"registryType":"npm","identifier":"opengrok-mcp-server","version":"9.0.1","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"OpenGrok server base URL (e.g. https://opengrok.example.com/source/)","isRequired":true,"format":"string","placeholder":"https://opengrok.example.com/source/","name":"OPENGROK_BASE_URL"},{"description":"OpenGrok authentication username","isRequired":true,"format":"string","name":"OPENGROK_USERNAME"},{"description":"OpenGrok authentication password. Prefer storing via OS keychain using 'npx opengrok-mcp-server setup'.","format":"string","isSecret":true,"name":"OPENGROK_PASSWORD"},{"description":"Verify TLS certificates. Set to false for self-signed or internal CA certs.","format":"boolean","default":"true","name":"OPENGROK_VERIFY_SSL"},{"description":"Enable Code Mode: 5-tool sandbox interface with env.opengrok.* JavaScript API. Saves 80-95% tokens on large codebases.","format":"boolean","default":"false","name":"OPENGROK_CODE_MODE"},{"description":"Default project to scope all searches. Can be overridden per call.","format":"string","name":"OPENGROK_DEFAULT_PROJECT"},{"description":"Response size tier controlling token usage.","format":"string","default":"minimal","choices":["minimal","standard","generous"],"name":"OPENGROK_CONTEXT_BUDGET"},{"description":"Enable interactive project picker at session start and env.opengrok.elicit() in Code Mode sandbox. Requires a supporting MCP client.","format":"boolean","default":"false","name":"OPENGROK_ENABLE_ELICITATION"},{"description":"Model preference for MCP Sampling (used for error explanation and query reformulation).","format":"string","name":"OPENGROK_SAMPLING_MODEL"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-03-31T19:30:25.032956Z","publishedAt":"2026-03-31T19:30:25.032956Z","updatedAt":"2026-03-31T19:30:25.032956Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.IcyHot09/opengrok-mcp-server","description":"MCP server bridging OpenGrok search engine with AI for instant context across massive codebases.","title":"OpenGrok MCP Server","repository":{"url":"https://github.com/IcyHot09/opengrok-mcp-server","source":"github"},"version":"9.6.0","websiteUrl":"https://github.com/IcyHot09/opengrok-mcp-server","packages":[{"registryType":"npm","identifier":"opengrok-mcp-server","version":"9.6.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"OpenGrok server base URL (e.g. https://opengrok.example.com/source/)","isRequired":true,"format":"string","placeholder":"https://opengrok.example.com/source/","name":"OPENGROK_BASE_URL"},{"description":"OpenGrok authentication username. Leave unset for anonymous access.","format":"string","name":"OPENGROK_USERNAME"},{"description":"OpenGrok authentication password. Prefer storing via OS keychain using 'npx opengrok-mcp-server setup'.","format":"string","isSecret":true,"name":"OPENGROK_PASSWORD"},{"description":"Verify TLS certificates. Set to false for self-signed or internal CA certs.","format":"boolean","default":"true","name":"OPENGROK_VERIFY_SSL"},{"description":"Enable Code Mode: 2-tool sandbox interface with env.opengrok.* JavaScript API. Reduces AI token usage by ~90%.","format":"boolean","default":"true","name":"OPENGROK_CODE_MODE"},{"description":"Register the 3 memory tools in Code Mode (memory status, read, update). Off = api + execute only.","format":"boolean","default":"false","name":"OPENGROK_ENABLE_MEMORY_TOOLS"},{"description":"Default project to scope all searches. Can be overridden per call.","format":"string","name":"OPENGROK_DEFAULT_PROJECT"},{"description":"Response size tier controlling token usage.","format":"string","default":"standard","choices":["minimal","standard","generous"],"name":"OPENGROK_CONTEXT_BUDGET"},{"description":"OpenGrok REST API version. Use v2 for call graph features (requires OpenGrok 1.12+).","format":"string","default":"v1","choices":["v1","v2"],"name":"OPENGROK_API_VERSION"},{"description":"HTTP/HTTPS proxy URL for all OpenGrok API requests (e.g. http://proxy.company.com:8080). Also set as HTTPS_PROXY.","format":"string","name":"HTTP_PROXY"},{"description":"Force a specific response format for all tools. Leave unset for per-tool auto-selection (recommended).","format":"string","choices":["markdown","json","tsv","toon","yaml","text"],"name":"OPENGROK_RESPONSE_FORMAT_OVERRIDE"},{"description":"Directory where the AI stores investigation notes (active-task.md, investigation-log.md). Defaults to ~/.config/opengrok-mcp/memory-bank/ or workspace-relative when set by the VS Code extension.","format":"string","name":"OPENGROK_MEMORY_BANK_DIR"},{"description":"Comma-separated paths to compile_commands.json for C/C++ compiler flag and include-path extraction. Leave unset for automatic workspace discovery.","format":"string","name":"OPENGROK_LOCAL_COMPILE_DB_PATHS"},{"description":"Interactive AI Prompts — the AI pauses to ask questions during investigations (project selection, file disambiguation). Requires Claude Code v2.1.76+ or a client that supports MCP Elicitation.","format":"boolean","default":"true","name":"OPENGROK_ENABLE_ELICITATION"},{"description":"AI Sampling — allow the server to request LLM completions for error explanations and summaries. Off by default to avoid consuming premium requests (e.g. GitHub Copilot).","format":"boolean","default":"false","name":"OPENGROK_ENABLE_SAMPLING"},{"description":"Model preference for MCP Sampling (used for error explanation and query reformulation).","format":"string","name":"OPENGROK_SAMPLING_MODEL"},{"description":"Files API Cache — avoids re-uploading unchanged investigation notes. Requires Files API support in the MCP client.","format":"boolean","default":"false","name":"OPENGROK_ENABLE_FILES_API"},{"description":"Observation Masker — prepend compact history summaries to opengrok_execute results after N turns. Disabled by default; has no benefit for clients that retain full context (Claude Code, Cursor).","format":"boolean","default":"false","name":"OPENGROK_ENABLE_OBSERVATION_MASKER"},{"description":"Number of most-recent opengrok_execute results to keep as full text before masking older ones. Default: 10.","format":"string","default":"10","name":"OPENGROK_OBSERVATION_MASKER_TURNS"},{"description":"Maximum tokens for AI sampling responses (error explanation, query reformulation). Range: 64–4096.","format":"string","default":"256","name":"OPENGROK_SAMPLING_MAX_TOKENS"},{"description":"Path to write structured audit events (CSV/JSON). Appends tool invocations, elicitation events, and errors. Leave unset to disable.","format":"string","name":"OPENGROK_AUDIT_LOG_FILE"},{"description":"Maximum requests per minute to the OpenGrok server. Default: 60.","format":"string","default":"60","name":"OPENGROK_RATELIMIT_RPM"},{"description":"Per-tool rate limits in requests per minute, as comma-separated tool:rpm pairs (e.g. opengrok_execute:15,opengrok_search_code:30). Overrides OPENGROK_RATELIMIT_RPM for specific tools.","format":"string","name":"OPENGROK_PER_TOOL_RATELIMIT"},{"description":"HTTP request timeout in seconds for OpenGrok API calls. Increase for slow servers. Default: 30.","format":"string","default":"30","name":"OPENGROK_TIMEOUT"},{"description":"Default maximum number of results returned per search query. Default: 25.","format":"string","default":"25","name":"OPENGROK_DEFAULT_MAX_RESULTS"},{"description":"Path to a file containing the OpenGrok password (file-mounted secret for containers). Takes precedence over the OS keychain when OPENGROK_PASSWORD is unset.","format":"string","name":"OPENGROK_PASSWORD_FILE"},{"description":"Hard cap on response payload size in bytes. Overrides the context-budget default. Non-positive values are ignored.","format":"string","name":"OPENGROK_MAX_RESPONSE_BYTES"},{"description":"Cap for the search_and_read compound tool in bytes. Overrides the context-budget default (2–8 KB depending on tier). Non-positive values are ignored.","format":"string","name":"OPENGROK_SEARCH_AND_READ_CAP"},{"description":"When true, reject OPENGROK_BASE_URL values pointing at private/loopback IPs at startup. Default: false (warn only; per-request guards still apply).","format":"boolean","default":"false","name":"OPENGROK_STRICT_SSRF"},{"description":"Expected JWT issuer (iss claim) for HTTP transport OAuth. When set, JWTs from other issuers are rejected.","format":"string","name":"OPENGROK_JWT_ISSUER"},{"description":"Directory containing tree-sitter WASM grammars. Overrides the bundled grammar lookup.","format":"string","name":"OPENGROK_GRAMMAR_DIR"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-16T07:02:40.419221Z","publishedAt":"2026-09-16T07:02:40.419221Z","updatedAt":"2026-09-16T07:02:40.419221Z","isLatest":true}}}],"metadata":{"count":14}}
