cint MCP Server
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., "@cint MCP Serverexplain diagnostic C1001 and how to fix it"
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.
cint MCP Server (cint-mcp)
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-00PthroughSPEC-09P)Diagnostic & Fault Catalogue (
C1001throughC9102,E_OVERFLOW,E_ASSERT, etc.)Verified
.ciRecipes with cryptographic receiptscint University Curriculum (
CU-000.2throughCU-401.2)Native Toolchain Execution (
cint_check,cint_eval,cint_test) when a localcintbinary 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-mcpMethod 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.py2. Claude Desktop
Add to your claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/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 |
|
| Search across specifications, glossary, errata, and university lessons |
|
| Retrieve a self-contained specification or lesson chunk |
|
| Explain compile error codes ( |
|
| Fetch verified 0.2.0 |
|
| List curriculum lessons across |
|
| Compile |
|
| Compile and run a program ( |
|
| Run the program's |
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 |
| Public edition SHA-256 hashes and compiler source identity |
| Quickstart guide for C programmers |
| Quickstart guide for Python and NumPy developers |
| Condensed cint 0.2.0 syntax, types, and rules |
| 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 toolscint_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.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Complete .ci source code string to check |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Complete .ci source code string |
TDQS
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.
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.
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.
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.
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.
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').
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Exact chunk ID as returned by cint_search_docs | |
| verbose | No | If true, return unabridged chunk text |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Recipe name or keyword (e.g. 'fixed-point-trig', 'money-ledger') | |
| verbose | No | If true, include the recipe's explanation |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| course | No | Course ID filter (e.g. 'CU-000', 'CU-101', 'CU-201', 'CU-301', 'CU-401') | |
| verbose | No | If true, include detailed lesson objectives |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Diagnostic or fault code (e.g. 'C1001', 'C3005', 'C9102', 'E_OVERFLOW') | |
| verbose | No | Accepted for compatibility; the answer is always complete |
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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-20, default: 5) | |
| query | Yes | Keywords, clause names, or error codes (e.g. 'muldiv', 'overflow', 'C1001') | |
| scope | No | Optional scope filter: 'spec' (specifications, glossary, references, errata), 'curriculum', or 'diagnostic' (the diagnostic and fault catalogue) | |
| verbose | No | If true, return extended chunk content rather than compact summaries |
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 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Complete .ci source code containing test blocks |
TDQS
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.
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.
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.
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.
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.
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.
8 tool updates
v0.2.0- First observed
cint_check - First observed
cint_eval - First observed
cint_get_doc - First observed
cint_get_recipe - First observed
cint_list_curriculum - First observed
cint_lookup_diagnostic - First observed
cint_search_docs - First observed
cint_test
TDQS
Scored across 8 tools
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.
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.
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.
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
Related MCP Connectors
Project memory for coding agents: requirements, decisions, code graph and delivery telemetry.
Your team's shipping standards, org map and delivery metrics, inside your coding agent.
Shared memory for coding agents. Stop re-explaining your codebase every session.
Architecture compiler for AI code. 11 tools, 92 actions, 872 Lean4 proofs, 100/100 self-cert.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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.2Apache 2.0
- AlicenseBqualityBmaintenanceEnables 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.9Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables 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 npm2MIT
- AlicenseNot gradedqualityAmaintenanceProvides 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 npm7MIT