sbox-mcp-documentation
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sbox-mcp-documentationshow me the documentation for networking"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sbox-mcp-documentation
An MCP (Model Context Protocol) server that provides AI assistants with searchable access to the full s&box game engine documentation — 180+ pages of guides, tutorials, and concepts — plus the complete API reference with 1,800+ types and 15,000+ members.
Quick Start
No installation required — use npx directly in your MCP config:
{
"servers": {
"sbox-docs": {
"type": "stdio",
"command": "npx",
"args": ["-y", "sbox-mcp-documentation"]
}
}
}Or install globally:
npm install -g sbox-mcp-documentationRelated MCP server: Dedalus MCP Documentation Server
Features
Documentation
Full-text search across all s&box documentation with fuzzy matching and relevance ranking
Direct page retrieval with chunked reading for large pages
Category browsing to discover available documentation topics
API Reference
API type search across 1,800+ public types (classes, structs, enums, interfaces) with member-aware ranking
Detailed type lookup — methods, properties, fields, events, XML doc comments, and inheritance info
Chunked output for large types so no detail is truncated
General
Automatic caching — docs cached for 4 hours, API schema cached for 24 hours
Background indexing on startup — both subsystems ready within seconds
Built-in self-tests to verify the server is working correctly
Data Sources
Documentation
Documentation is fetched from the official s&box wiki via the LLM-optimized index at sbox.game/llms.txt. This file lists all available documentation pages, and each page is fetched as raw Markdown from sbox.game/dev/doc/{page}.md. The server crawls all listed pages and builds a local search index using MiniSearch.
API Reference
The API schema is downloaded from the Facepunch CDN as a JSON file (the same data powering sbox.game/api). It contains all public types from the s&box assembly — 1,800+ types with full member signatures, XML doc comments, and inheritance info. The server strips internal/compiler-generated types and indexes everything with MiniSearch for fast fuzzy lookup.
Installation
Option 1: npx (recommended)
No install needed. Just reference npx sbox-mcp-documentation in your MCP configuration (see below).
Option 2: Global install
npm install -g sbox-mcp-documentationOption 3: From source
git clone https://github.com/fiedlermarius/sbox-mcp-documentation.git
cd sbox-mcp-documentation
npm install
npm run buildConfiguration
VS Code (GitHub Copilot)
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"sbox-docs": {
"type": "stdio",
"command": "npx",
"args": ["-y", "sbox-mcp-documentation"]
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"sbox-docs": {
"command": "npx",
"args": ["-y", "sbox-mcp-documentation"]
}
}
}Claude Desktop
Add to your Claude Desktop config (%APPDATA%/Claude/claude_desktop_config.json on Windows):
{
"mcpServers": {
"sbox-docs": {
"command": "npx",
"args": ["-y", "sbox-mcp-documentation"]
}
}
}Local Checkout Example
If you want to use a local checkout instead of npx, update your configuration as follows:
{
"servers": {
"sbox-docs": {
"type": "stdio",
"command": "node",
"args": ["<path-to-repo>/dist/index.js"]
}
}
}As shown above, you need to replace "command": "npx" and "args" with "command": "node" and "args": ["<path-to-repo>/dist/index.js"].
Tools
Tool | Description |
| Search documentation with fuzzy matching. Returns titles, URLs, categories, and relevant snippets. Supports category filtering and result limits. |
| Fetch a specific documentation page as Markdown. Supports chunked reading via |
| List all documentation categories with page counts. Useful for discovering what topics are available. |
| Search the s&box API reference by type name, namespace, or keyword. Returns matching types with namespace, description, and top member names. |
| Get full details for a specific API type — all methods, properties, fields, events, XML doc comments, and inheritance. Supports chunked output for large types. |
| Show cache and index health — page counts, freshness, and whether both docs and API indexing are complete. |
| Run built-in self-tests for all six modules (cache, search, crawler — docs and API). Returns pass/fail results per test case. |
Architecture
sbox.game/llms.txt (doc index) cdn.sbox.game (AssemblySchema JSON)
│ │
▼ ▼
DocCrawler ──► GET /llms.txt ApiCrawler ──► resolves schema URL
│ GET /dev/doc/*.md │ downloads + filters types
│ │
▼ ▼
DocCache ──► ~/.sbox-docs-mcp/cache/ ApiCache ──► ~/.sbox-docs-mcp/cache/
│ manifest.json (TTL 4h) │ api-types.json (TTL 24h)
│ │
▼ ▼
DocSearch ──► MiniSearch index ApiSearch ──► MiniSearch index
title (3x), category (2x), name (4x), fullName (3x),
content (1x) members (2x), namespace (1.5x)Cache Behavior
Location:
~/.sbox-docs-mcp/cache/Docs TTL: 4 hours (configurable via
SBOX_DOCS_CACHE_TTLenv var, in seconds)API TTL: 24 hours — the schema is large (~9 MB) and changes infrequently
Custom directory: Set
SBOX_DOCS_CACHE_DIRenv varBoth caches are populated on server startup in the background
Set
SBOX_API_SCHEMA_URLto pin a specific schema version
Related Projects
Facepunch.AssemblySchema — the schema format this server uses for API reference data
License
Available Tools
7 toolssbox_cache_statusA
Show the current status of the documentation cache and search index. Use this to verify the MCP server is running and has indexed documentation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It implies this is a read-only health-check operation. There are no mutation concerns, and the tool takes zero parameters, so the behavioral surface is minimal. The description is adequate but doesn't detail what the status output looks like or what specific states it can report.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. The first sentence states the purpose; the second gives the usage context. This is exemplary conciseness—every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only status tool with no output schema, the description is largely complete. It clearly states what is exposed (cache and search index status) and when to use it. A minor gap is that it doesn't describe what the status output will contain or how to interpret it, but given the tool's simplicity, the description is well-proportioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 as specified. There's nothing for the description to add about parameter meaning since the input schema is an empty object. The description's mention of what information this tool exposes (cache and search index status) compensates for any ambiguity about what the status represents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows the status of the documentation cache and search index, with a specific verb ('Show') and resource ('documentation cache and search index'). It's distinct from sibling tools like sbox_search_docs which search documentation, and sbox_list_doc_categories which lists categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'Use this to verify the MCP server is running and has indexed documentation.' This tells the agent when to invoke it (health-check scenario). It doesn't explicitly name alternatives or exclusions, but given the unique purpose among siblings, the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbox_get_api_typeA
Get full API reference for a specific s&box type: all public methods, properties, fields, and their signatures and descriptions. Accepts short names (e.g. 'Component') or fully-qualified names (e.g. 'Sandbox.Component').
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short type name (e.g. 'Component') or fully-qualified name (e.g. 'Sandbox.Component') | |
| max_length | No | Maximum content length in characters (default: 5000) | |
| start_index | No | Character offset to start reading from (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't mention pagination behavior implications of start_index/max_length, whether the 'full' output is truncated, rate limits, or error behavior for unknown type names. For a lookup tool that can return large content, the max_length/start_index params hint at truncation but the description doesn't explain how they interact or what 'full' means given these limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single well-structured sentence that front-loads the purpose and adds the naming detail. Efficient and zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool returns content that can be long (up to 20000 chars with max_length), yet the description doesn't explain truncation semantics or how start_index/max_length enable paging through large type references. No output schema exists, so the return shape isn't described. For a content-returning tool with pagination parameters, some guidance on output behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all three parameters (name, max_length, start_index) are documented in the schema with clear descriptions. The description adds the short-vs-fully-qualified naming guidance for 'name', which is useful, but max_length and start_index are fully covered by the schema. Baseline 3 applies since schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a specific verb+resource ('Get full API reference for a specific s&box type') and clearly enumerates what it returns (methods, properties, fields, signatures, descriptions). It also names the key differentiator (specific type lookup vs search) which distinguishes it from siblings like sbox_search_api and sbox_search_docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is for fetching a full type reference, and the naming convention (short or fully-qualified names) implies the targeting usage. However, it doesn't explicitly state when NOT to use this tool versus siblings (e.g., use sbox_search_api for discovery, this for known types). Sibling distinction is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbox_get_doc_pageA
Fetch a specific s&box documentation page and return its content as Markdown. Supports chunked reading for large pages via start_index and max_length.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL of the documentation page (e.g. https://sbox.game/dev/doc/scene/components) | |
| max_length | No | Maximum content length in characters (default: 5000) | |
| start_index | No | Character offset to start reading from (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses chunked reading behavior (start_index, max_length) and return format (Markdown), which is helpful. However, it doesn't disclose failure behaviors (404 pages, invalid URLs), rate limits, or what happens on missing pages. For a read-only fetch tool this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, tightly written with zero waste. Front-loaded with the core action and output format, followed by the chunking capability note. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only fetch tool with 100% schema coverage and only 3 parameters, the description is complete. It explains the return format, the chunking mechanism, and the resource type. No output schema exists, but the Markdown return format is stated. Missing minor details like error handling, but adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (url, max_length, start_index) documented with clear descriptions and defaults. The description adds context about chunked reading and Markdown output, but mostly relies on the well-documented schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Fetch a specific s&box documentation page') with a clear resource (documentation page) and an explicit output format (return content as Markdown). It distinguishes itself from siblings like sbox_search_docs and sbox_search_api by being a fetch-by-URL tool, not a search tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it (fetch a specific page by URL) versus search tools. However, it doesn't explicitly state exclusions or name alternative sibling tools, though the context signals show it's clearly separated from search and listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbox_list_doc_categoriesA
List all available s&box documentation categories with page counts. Use this to discover what documentation is available before searching.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't disclose return format details, whether this is a cached/network operation, or performance implications. However, for a listing tool the behavioral surface is minimal - it lists categories and counts. The mention of page counts is a useful behavioral detail beyond a bare 'list categories' statement, but it doesn't reveal things like whether results are paginated or sorted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The first sentence states the purpose (with page counts detail), the second provides usage guidance. Every word earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with no output schema, the description is reasonably complete. It tells the agent what it returns (categories + page counts) and when to use it. It could benefit from mentioning what happens if no categories exist or whether the listing is alphabetical, but these are minor gaps for a simple discovery tool. The sibling tools (search, get page, get type) suggest the workflow is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description has no parameter burden to carry. The baseline for zero-param tools is 4, and the description adequately describes the tool's singular function. No parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all s&box documentation categories with page counts, using a specific verb (list) and resource (documentation categories). It distinguishes from siblings by noting it returns page counts, which implies discovery is the goal. It doesn't explicitly name sibling alternatives but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: 'Use this to discover what documentation is available before searching.' This provides clear context on the intended workflow position (before searching). It doesn't exclude alternatives or name sibling tools for comparison, but the guidance is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbox_run_testsB
Run built-in self-tests for the cache, search index, and crawler. Returns pass/fail results for each test case.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states running tests returns pass/fail results, which implies a read-only verification operation. However, it doesn't disclose whether running tests has any side effects, whether it's safe to run concurrently, or how long it might take. The absence of destructive-warning is a gap but not a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single declarative sentence, zero waste. Every word earns its place, covering what it tests (cache, search index, crawler) and what it returns (pass/fail results). Well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: zero params, no output schema. The description establishes scope and return type. However, it doesn't describe the structure of results (per-test-case breakdown format) or note whether failures are informational or indicate actionable problems. Given the low complexity, this is adequate but could add a note about result granularity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema coverage is 100% (trivially, as there are no properties). With zero parameters, there's nothing for the description to explain about input semantics. Baseline 4 applies for a no-parameter tool since description doesn't need to compensate for undocumented params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs built-in self-tests for cache, search index, and crawler, and returns pass/fail results. The verb 'Run' + resource 'built-in self-tests' is specific, and while it doesn't explicitly distinguish from siblings, its purpose is clear given no sibling does exactly this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It doesn't mention that this is a diagnostic/verification tool useful for checking system health, nor does it suggest when tests should be run (e.g., after setup, when debugging search issues). No exclusions or alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbox_search_apiA
Search the s&box API reference for classes, structs, interfaces, and their members. Returns matching types with descriptions and member names. Use sbox_get_api_type to get full details for a specific type.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default: 8, max: 20) | |
| query | Yes | Type name, namespace, method name, or keyword to search in the API reference |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries some burden for behavioral disclosure. The description does clarify this is a search operation (returns matching types) rather than a mutation. It doesn't describe pagination behavior, result count behavior, or error handling, but as a read-only search tool the behavioral surface is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence states purpose and expected output; second sentence gives the natural next-step tool. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with 2 well-documented parameters and no output schema, the description is largely complete. It covers what to search, what gets returned, and what to use next. Could add response-format details since there's no output schema, but the tool's simplicity mitigates this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (query and limit) are already well-documented in the schema. The description adds context about what kinds of queries are valid (type name, namespace, method name, keyword), which supplements rather than duplicates the schema. The description adds marginal value but schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search'), the resource ('s&box API reference'), and the scope (classes, structs, interfaces, and their members). It differentiates from sibling tools by explicitly describing what's returned (matching types with descriptions and member names) and pointing to sbox_get_api_type for full details, distinguishing it from sbox_search_docs which searches documentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (searching the API reference) versus sbox_get_api_type (getting full details for a specific type). However, it doesn't explicitly address sbox_search_docs differentiation or specify when NOT to use this tool, though the alternative guidance is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbox_search_docsB
Search s&box documentation for guides, tutorials, and concepts. Returns matching pages with titles, URLs, and relevant snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default: 10, max: 25) | |
| query | Yes | Search terms to find in the documentation | |
| category | No | Optional category filter (e.g. 'systems', 'about', 'scenes') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden of behavioral disclosure. It states this is a search operation returning pages with titles, URLs, and snippets, which clarifies the read-only nature and return shape. However, it doesn't disclose pagination behavior, rate limits, or what the category filter actually filters against beyond the overloaded example. With zero annotation coverage, more disclosure would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that covers purpose and return format. It's appropriately front-loaded and contains no filler. The return-format clause is a useful addition without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Schema coverage is 100% and all three parameters are documented in the schema. The description adds the return format (titles, URLs, snippets) not present in the schema. For a search tool with no output schema and no annotations, it covers the essential aspects: what it searches, what it returns, and how to filter. Sibling differentiation could be stronger given the presence of sbox_search_api, but the description is reasonably complete for a search utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (query, limit, category) with their descriptions and defaults. The description adds the return format but doesn't add meaning to individual parameters beyond what the schema already provides. Baseline 3 applies when the schema does the heavy lifting, and that's the case here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'search' plus resource 's&box documentation' clearly states the action and target. It specifies it covers guides, tutorials, and concepts and returns pages with titles, URLs, and snippets. It distinguishes from siblings by scoping to documentation pages (vs sbox_search_api which presumably targets API references), though this differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (searching documentation for guides/tutorials/concepts) but provides no explicit guidance on when not to use it or which sibling alternative to choose instead. Given the sibling sbox_search_api, an explicit note about when to use API search vs docs search would strengthen the tool's selection accuracy. Context can be inferred but is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v3.0.0- First observed
sbox_cache_status - First observed
sbox_get_api_type - First observed
sbox_get_doc_page - First observed
sbox_list_doc_categories - First observed
sbox_run_tests - First observed
sbox_search_api - First observed
sbox_search_docs
TDQS
Scored across 7 tools
The tools are mostly distinct: search_api vs search_docs clearly separate API reference from general documentation, and get_api_type vs get_doc_page are both retrieval operations but target different content types. list_doc_categories, cache_status, and run_tests are clearly distinct. The only mild ambiguity is between search_api and get_api_type, but their descriptions (search vs get full details) resolve it well.
All tools follow a consistent 'sbox_' prefix convention. The verbs are mixed but predictable: search_* for discovery, get_* for retrieval, list_* for enumeration, cache_status and run_tests are noun-phrase operational commands. The naming is coherent and per-purpose, though not a uniform verb_noun pattern across all tools.
Seven tools is well within the ideal 3-15 range. Each tool serves a distinct purpose: two search operations, two retrieval operations, one listing operation, and two diagnostic/status tools. This is appropriate for a documentation MCP server covering both API reference and guides.
The server covers documentation search (search_docs), API reference lookup (search_api, get_api_type), page retrieval (get_doc_page), discovery (list_doc_categories), and operational diagnostics (cache_status, run_tests). This is a reasonably complete surface for a documentation server. Minor gaps include no direct 'get category' operation and no way to list all API types without searching, but these are workable.
Maintenance
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that gives your AI access to the source code and docs of all public github repos
An MCP server that integrates with Discord to provide AI-powered features.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides comprehensive xAI/Grok API documentation, allowing AI assistants to search bundled guides, fetch live documentation, and browse API endpoints or model specifications.13-
- AlicenseAqualityDmaintenanceAn MCP server that serves documentation and enables AI-powered search, Q\&A, and document analysis for developer tools and guides.54MIT
- AlicenseNot gradedqualityFmaintenanceA game development MCP server with 950+ curated docs across 29 engines and 5 power tools for scaffolding, debugging, design, and scope tracking. It connects to any AI supporting the Model Context Protocol.4MIT
- AlicenseBqualityAmaintenanceMCP server for Forge Minecraft modding documentation. Gives AI assistants direct access to Forge docs with structured search results.511 npm3MIT