Skip to main content
Glama

cint MCP Server (cint-mcp)

License MCP Version cint Edition

Official public Model Context Protocol (MCP) server for cint 0.2.0 (checked against compiler identity d6ebe30d604346afe4a7912c5d6f3ce2b9d401641d361772892b44b9292609ff).

Gives coding agents (Claude Code, Claude Desktop, Cursor, Windsurf, Copilot, etc.) instant in-memory access to:

  • Public Specifications (SPEC-00P through SPEC-09P)

  • Diagnostic & Fault Catalogue (C1001 through C9102, E_OVERFLOW, E_ASSERT, etc.)

  • Verified .ci Recipes with cryptographic receipts

  • cint University Curriculum (CU-000.2 through CU-401.2)

  • Native Toolchain Execution (cint_check, cint_eval, cint_test) when a local cint binary is present

Zero external package dependencies — runs on standard Python 3.8+ on Linux, macOS, and Windows.


Quick Setup

1. Claude Code CLI (Local or Cloud Sessions)

You can add this MCP server directly via Git or by cloning the repository:

Method A: Run directly from Git (using uvx)

claude mcp add cint -- uvx --from git+https://github.com/pennyleans/cint-mcp cint-mcp

Method B: In any project using .mcp.json

Add to your project's .mcp.json:

{
  "mcpServers": {
    "cint": {
      "command": "python",
      "args": ["path/to/cint-mcp/cint_mcp_server.py"]
    }
  }
}

Method C: Global Claude Code configuration

claude mcp add cint -- python /path/to/cint-mcp/cint_mcp_server.py

2. Claude Desktop

Add to your claude_desktop_config.json:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cint": {
      "command": "python",
      "args": ["F:\\cint-mcp\\cint_mcp_server.py"]
    }
  }
}

3. Cursor / Windsurf

Add to .cursor/mcp.json or windsurf config:

{
  "mcpServers": {
    "cint": {
      "command": "python",
      "args": ["cint_mcp_server.py"]
    }
  }
}

Related MCP server: library-enrichment

Available Tools

Tool

Parameters

Description

cint_search_docs

query, scope, limit, verbose

Search across specifications, glossary, errata, and university lessons

cint_get_doc

id, verbose

Retrieve a self-contained specification or lesson chunk

cint_lookup_diagnostic

code, verbose

Explain compile error codes (C1001–C9102) or runtime faults (E_OVERFLOW, E_DIVZERO) with repairs

cint_get_recipe

name, verbose

Fetch verified 0.2.0 .ci code recipes (fixed-point-trig, money-ledger, fnv1a-digest, etc.)

cint_list_curriculum

course, verbose

List curriculum lessons across CU-000 to CU-401

cint_check

source

Compile .ci source without running it (cint emit-c) and return its diagnostics

cint_eval

source

Compile and run a program (cint run) and return its output or fault record

cint_test

source

Run the program's test blocks (cint test)

The three execution tools need a local cint: on PATH, named by CINT_PATH, or the newest build under CINT_BUILD/boot/<leg>. CINT_MCP_TIMEOUT sets their time limit in seconds (default 120).


Available Resources

Resource URI

Description

cint://manifest

Public edition SHA-256 hashes and compiler source identity

cint://from-c

Quickstart guide for C programmers

cint://from-python

Quickstart guide for Python and NumPy developers

cint://cheat-sheet

Condensed cint 0.2.0 syntax, types, and rules

cint://refusals

Refused constructs catalogue under SPEC-09P.1


License

Licensed under the Apache License, Version 2.0 with LLVM Exceptions matching the cint project. See LICENSE for details.

Available Tools

8 tools
cint_checkA

Compile cint (.ci) source without running it (cint emit-c) and return its CINT-DIAG-1 diagnostics, or 'compiles'. Needs a local cint (PATH or CINT_PATH); look codes up with cint_lookup_diagnostic.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesComplete .ci source code string to check

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that execution is skipped (side-effect-free check), that a local cint is required via PATH or CINT_PATH, and that the result is either CINT-DIAG-1 diagnostics or the literal 'compiles'. It does not describe failure behavior when the binary is missing or whether warnings vs errors are included.

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?

One compact sentence front-loads the core action, then appends the prerequisite and the diagnostic-lookup pointer. Every clause earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description still specifies the return contract (CINT-DIAG-1 diagnostics or 'compiles'), the environment prerequisite, and where to resolve codes. Nothing an agent needs to call this correctly 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?

There is a single parameter with 100% schema coverage ('Complete .ci source code string to check'), so the schema already documents it fully. The description adds no syntax, size, or format detail beyond the schema, making the baseline 3 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?

States a specific verb (compile/check) and resource (.ci source) and immediately distinguishes itself from the running siblings by noting it does NOT run the code. It even names the underlying mechanism (`cint emit-c`), so an agent can tell it apart from cint_eval/cint_test without opening any schema.

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?

Clearly implies the when: use this to verify that source compiles without executing it. It also routes the agent to cint_lookup_diagnostic for interpreting codes, and states the prerequisite of a local cint binary. It stops short of explicitly naming cint_eval/cint_test as the run-the-code alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cint_evalA

Compile and run a cint (.ci) program (cint run) and return its output, or its CINT-DIAG-1 diagnostic or CINT-FAULT-1 fault record. A program is void main() { ... } or top-level statements. Needs a local cint (PATH or CINT_PATH).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesComplete .ci source code string

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose two things structured fields do not: the return/failure taxonomy (output, or a CINT-DIAG-1 diagnostic, or a CINT-FAULT-1 fault record) and an environment prerequisite (local cint on PATH or CINT_PATH). It stops short of covering execution risk, sandboxing, or time limits for what is effectively arbitrary code execution.

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?

Two sentences, front-loaded with the action, then the outcome taxonomy, then the prerequisite — no filler. The diagnostic/fault identifiers are terse jargon, though they pair with the sibling cint_lookup_diagnostic, so the density is defensible.

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 one-parameter evaluator with no output schema, the description covers what the agent needs: what it takes, what it returns, what the failure records mean, and what the environment must provide. Output size, truncation, and runtime limits are unaddressed but are secondary for this tool shape.

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?

Only one parameter, and schema coverage is 100%, so the schema already defines it fully — baseline 3. The description does add genuine semantic detail beyond "Complete .ci source code string" by specifying the accepted program shape (`void main() { ... }` or top-level statements), but that is a modest increment rather than compensating for any gap.

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?

States a specific verb pair and resource (compile and run a cint .ci program) and names the command (`cint run`), which is far more than a restatement of the name. It implicitly separates itself from cint_check/cint_test by emphasizing execution, but never names or contrasts those siblings explicitly.

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?

Usage is only implied: an agent infers this is the tool to reach for when it wants a program executed and its output returned. It never states when to prefer cint_check (static validation) or cint_test over running, nor does it give any exclusions. The prerequisite note about needing a local cint is helpful context but is not alternative-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cint_get_docA

Retrieve one self-contained specification or curriculum chunk by the ID cint_search_docs returns (e.g. 'spec-04p:scope', 'cu-201-04:muldiv').

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesExact chunk ID as returned by cint_search_docs
verboseNoIf true, return unabridged chunk text

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. 'Retrieve' implies a read-only operation and 'self-contained' hints that the returned chunk stands alone, but there is no disclosure of failure behavior for an unknown/malformed ID, pagination, or permissions. Minimum viable, with clear gaps for a tool lacking any annotation coverage.

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?

A single sentence with zero filler, front-loaded with the action and resource, followed immediately by the provenance constraint and ID examples. Nothing is wasted.

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?

No output schema exists, but the description plus the verbose parameter schema together convey what comes back (an abridged vs. unabridged chunk). It is close to complete for a two-parameter read tool, with only error-handling behavior left unstated.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine value beyond the schema by giving concrete ID formats ('spec-04p:scope', 'cu-201-04:muldiv') that reveal the naming convention. The verbose parameter is left entirely to its schema description.

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 verb (Retrieve) and resource (one self-contained specification or curriculum chunk) and pins the scope to a single item by ID. It also names the sibling, cint_search_docs, as the source of the ID, so an agent can distinguish this fetch-by-ID tool from the search tool and from cint_get_recipe/cint_lookup_diagnostic.

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?

It establishes the workflow dependency explicitly: the ID must be one that cint_search_docs returns, which tells the agent to search before fetching. It stops short of any when-not guidance or comparison against the other get/lookup siblings, so it is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cint_get_recipeB

Fetch a verified cint 0.2.0 code recipe (fixed-point-trig, fixed-point-ln-sqrt, wide-i1024-scaling, svg-generator, fnv1a-digest, money-ledger, kernel-double-buffer) with digest.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRecipe name or keyword (e.g. 'fixed-point-trig', 'money-ledger')
verboseNoIf true, include the recipe's explanation

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. 'Fetch' implies a read-only operation and 'verified ... with digest' adds useful integrity context, but there is nothing about what happens with an unknown recipe name, caching/versioning behavior, or response shape.

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?

One front-loaded sentence with no filler, and the identifier list is tucked into parentheses so it does not obscure the main action.

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?

There is no output schema, so the description should say what a caller receives; 'with digest' hints at content plus an integrity hash but does not describe format or content of the recipe body. For a simple two-parameter fetch this is adequate but incomplete.

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?

Schema coverage is 100%, so the baseline is 3; however, the description enumerates all seven concrete recipe names, which is genuinely more actionable than the schema's two examples. It says nothing about the 'verbose' flag's effect on output size, keeping it out of 5 territory.

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?

States a specific verb ('Fetch') and resource ('verified cint 0.2.0 code recipe') and enumerates the seven valid recipe identifiers, which clearly separates it from doc-oriented siblings like cint_get_doc and cint_search_docs. It does not explicitly name an alternative, so it falls just short of a 5.

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?

There is no statement of when to reach for this tool versus cint_get_doc, cint_search_docs, or cint_list_curriculum, and no prerequisites (e.g. whether a recipe must be discovered first). Usage is only inferable from the tool name and the value list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cint_list_curriculumC

List available cint University lessons (CU-000.2 to CU-401.2).

ParametersJSON Schema
NameRequiredDescriptionDefault
courseNoCourse ID filter (e.g. 'CU-000', 'CU-101', 'CU-201', 'CU-301', 'CU-401')
verboseNoIf true, include detailed lesson objectives

TDQS

C2.9/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 behavioral burden. 'List' implies a safe read, but the definition says nothing about pagination, result ordering, whether the course filter is required to narrow output, or permission needs.

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?

A single, front-loaded sentence with no wasted words. It is efficient, though arguably too terse for a tool with zero annotations.

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?

With no annotations and no output schema, the description should compensate more: it does not explain default behavior (all lessons when 'course' is omitted) or the shape of results. Adequate to identify the tool, but thin for calling it confidently.

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%, with both 'course' (with example IDs) and 'verbose' fully documented in the schema, so the baseline of 3 applies. The description adds no parameter-level meaning beyond noting the overall ID scope.

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?

States a specific verb ('List') and resource ('cint University lessons') with a concrete ID range (CU-000.2 to CU-401.2). It is clearly distinct in resource from siblings like cint_get_recipe or cint_get_doc, though it never names a sibling explicitly.

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?

The description offers no when-to-use guidance, no prerequisites, and no pointer to an alternative tool (e.g. cint_get_doc for a single lesson). The agent must infer the intended context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cint_lookup_diagnosticA

Explain any compile diagnostic (C1001 to C9102) or runtime fault (E_OVERFLOW to E_ASSERT) with before/after fixes.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesDiagnostic or fault code (e.g. 'C1001', 'C3005', 'C9102', 'E_OVERFLOW')
verboseNoAccepted for compatibility; the answer is always complete

TDQS

A3.8/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 usefully discloses the return content ('before/after fixes'), but does not state that this is a read-only lookup, nor mention any cost, rate, or side-effect profile. Adequate 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?

A single front-loaded sentence that maps the input domain to the output value with zero filler. Nothing could be cut without losing information.

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 one-required-parameter lookup with no output schema and no annotations, the definition covers the purpose and the return shape well. A line on read-only behavior or on how it relates to the sibling doc tools would make it complete.

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 both parameters are fully documented in the schema, including the verbose flag's 'always complete' note. The description's code ranges add minor reinforcement but no syntax or meaning beyond what the schema provides.

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?

States a precise verb ('Explain') and resource (compile diagnostics and runtime faults) with concrete code ranges, so an agent instantly knows what it returns. It is clearly distinct from siblings like cint_check, cint_eval, cint_test, and the doc-retrieval tools.

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?

Usage is implied: call it when you hold a diagnostic or fault code and need an explanation. However, no explicit when-to-use trigger, no when-not, and no routing to alternatives such as cint_search_docs or cint_get_doc for related material.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cint_search_docsB

Search across cint 0.2.0 specifications (SPEC-00P to SPEC-09P), GLOSSARY, ERRATA, and University curriculum (CU-000 to CU-401). Compact output by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (1-20, default: 5)
queryYesKeywords, clause names, or error codes (e.g. 'muldiv', 'overflow', 'C1001')
scopeNoOptional scope filter: 'spec' (specifications, glossary, references, errata), 'curriculum', or 'diagnostic' (the diagnostic and fault catalogue)
verboseNoIf true, return extended chunk content rather than compact summaries

TDQS

B3.3/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 usefully discloses the default output mode ('compact output by default'), which hints at the verbose flag's tradeoff, but says nothing about result ranking, snippet format, or pagination behavior. For an inherently read-only search this is a moderate rather than severe gap.

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 tight sentences with zero waste; the corpus scope is front-loaded and the output-mode note trails it. Every clause earns its place.

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?

There is no output schema, so the description should ideally characterize the returned results beyond 'compact output'. It covers corpus scope and default mode adequately, but with no annotations and no output schema the agent still has gaps around result shape and ranking.

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 all four parameters (query, scope, limit, verbose) are already documented in the schema. The description adds only the 'compact output by default' detail tied to verbose, so the schema does the heavy lifting — baseline 3 applies.

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?

Names a specific verb (Search) and enumerates the exact corpora it covers (SPEC-00P to SPEC-09P, GLOSSARY, ERRATA, curriculum CU-000 to CU-401). An agent understands what it searches, but the description never contrasts itself with overlapping siblings like cint_lookup_diagnostic, cint_list_curriculum, or cint_get_doc.

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 statement of when to use this tool versus the alternatives, despite clear overlap with cint_lookup_diagnostic (diagnostics) and cint_list_curriculum (curriculum). 'Compact output by default' is a behavioral note, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cint_testA

Run the test "name" { ... } blocks of cint (.ci) source (cint test) and return one CINT-TEST-1 line per test, with the fault record of each failure. Needs a local cint (PATH or CINT_PATH).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesComplete .ci source code containing test blocks

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the return shape (one CINT-TEST-1 line per test, plus the fault record of each failure) and the environment requirement. It stops short of stating that the supplied source is actually executed, or anything about timeouts/side effects, so it is not fully transparent for an execution tool.

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?

Two sentences, both earning their place: the first covers what is run and what comes back, the second covers the environment prerequisite. The first sentence is dense but front-loads the essential information with no filler.

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?

There is no output schema, so the description must explain returns, and it does so concretely (CINT-TEST-1 lines plus fault records). Combined with the prerequisite note and a single fully-documented parameter, an agent has enough to call it correctly, though execution semantics remain unstated.

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% and the single parameter is already documented as 'Complete .ci source code containing test blocks'. The description repeats that constraint (test blocks) without adding syntax, size limits, or format guidance beyond the schema, so the baseline of 3 applies.

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?

States a specific verb (run) and resource (the `test "name" { ... }` blocks of cint .ci source), and even names the equivalent CLI invocation `cint test`. It is clear what the tool does, but it never explicitly contrasts itself with the execution-oriented siblings cint_check and cint_eval, so an agent still has to infer the boundary.

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?

Usage is implied by the tool name and the description's focus on test blocks, and a concrete prerequisite is given (a local cint on PATH or via CINT_PATH). However, there is no explicit when-to-use versus alternatives such as cint_check or cint_eval, and no statement of when this tool is the wrong choice.

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. 8 tool updatesv0.2.0
    • First observedcint_check
    • First observedcint_eval
    • First observedcint_get_doc
    • First observedcint_get_recipe
    • First observedcint_list_curriculum
    • First observedcint_lookup_diagnostic
    • First observedcint_search_docs
    • First observedcint_test

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct action on a distinct resource: check (compile only), eval (compile+run), test (run test blocks), lookup_diagnostic (explain codes), search_docs vs get_doc (find vs retrieve), get_recipe, list_curriculum. The descriptions explicitly disambiguate the easily confused compile/run/test trio and the search/get doc pair.

Naming Consistency4/5

All tools share the cint_ prefix and snake_case, and most follow verb_noun (lookup_diagnostic, get_recipe, list_curriculum, search_docs, get_doc). The bare verbs check, eval, and test deviate slightly from the pattern but remain readable and unambiguous.

Tool Count5/5

Eight tools is well-scoped for a language-tooling server: execution (check/eval/test), documentation discovery (search_docs/get_doc), diagnostics explanation, and curated assets (recipes/curriculum). Each tool earns its place with no filler.

Completeness4/5

The surface covers the full core workflow of compiling, running, testing, diagnosing, and looking up docs/recipes/lessons. Minor gaps exist (no version/environment info tool, no formatter or project scaffolding), but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to perform hybrid code search, get explanations, analyze relations and impacts, retrieve context packs, and generate documentation across ~45 languages via 17 MCP tools, all powered by a local vector database and LLM.
    2
    Apache 2.0
  • A
    license
    B
    quality
    B
    maintenance
    Enables coding agents to establish exact-release library identity, search provenance-tracked API, docs, example, source, and release evidence, compare releases, and test proposed invocations in isolated capsules for Rust and Python dependency environments.
    9
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables local-first codebase intelligence, allowing chat, search, and audit operations on any repository with file:line citations, and supports offline deterministic modes without an LLM.
    9 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides local-first repository architecture analysis with file-level proof, enabling agents to map codebases, locate implementations, trace call paths, and assess change impact with deterministic evidence.
    4 npm
    7
    MIT