Skip to main content
Glama
fiedlermarius

sbox-mcp-documentation

sbox-mcp-documentation

npm version License: MIT

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-documentation

Related 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

No install needed. Just reference npx sbox-mcp-documentation in your MCP configuration (see below).

Option 2: Global install

npm install -g sbox-mcp-documentation

Option 3: From source

git clone https://github.com/fiedlermarius/sbox-mcp-documentation.git
cd sbox-mcp-documentation
npm install
npm run build

Configuration

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

sbox_search_docs

Search documentation with fuzzy matching. Returns titles, URLs, categories, and relevant snippets. Supports category filtering and result limits.

sbox_get_doc_page

Fetch a specific documentation page as Markdown. Supports chunked reading via start_index and max_length for large pages.

sbox_list_doc_categories

List all documentation categories with page counts. Useful for discovering what topics are available.

sbox_search_api

Search the s&box API reference by type name, namespace, or keyword. Returns matching types with namespace, description, and top member names.

sbox_get_api_type

Get full details for a specific API type — all methods, properties, fields, events, XML doc comments, and inheritance. Supports chunked output for large types.

sbox_cache_status

Show cache and index health — page counts, freshness, and whether both docs and API indexing are complete.

sbox_run_tests

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_TTL env var, in seconds)

  • API TTL: 24 hours — the schema is large (~9 MB) and changes infrequently

  • Custom directory: Set SBOX_DOCS_CACHE_DIR env var

  • Both caches are populated on server startup in the background

  • Set SBOX_API_SCHEMA_URL to pin a specific schema version

License

MIT

Available Tools

7 tools
sbox_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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').

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesShort type name (e.g. 'Component') or fully-qualified name (e.g. 'Sandbox.Component')
max_lengthNoMaximum content length in characters (default: 5000)
start_indexNoCharacter offset to start reading from (default: 0)

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of the documentation page (e.g. https://sbox.game/dev/doc/scene/components)
max_lengthNoMaximum content length in characters (default: 5000)
start_indexNoCharacter offset to start reading from (default: 0)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (default: 8, max: 20)
queryYesType name, namespace, method name, or keyword to search in the API reference

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (default: 10, max: 25)
queryYesSearch terms to find in the documentation
categoryNoOptional category filter (e.g. 'systems', 'about', 'scenes')

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 7 tool updatesv3.0.0
    • First observedsbox_cache_status
    • First observedsbox_get_api_type
    • First observedsbox_get_doc_page
    • First observedsbox_list_doc_categories
    • First observedsbox_run_tests
    • First observedsbox_search_api
    • First observedsbox_search_docs

TDQS

A3.8/5.0

Scored across 7 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers