tolk-mcp-server
Compiles and verifies Tolk smart contract code for the TON blockchain, providing tools for compiling, debugging, and obtaining bytecode and code hash.
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., "@tolk-mcp-servercompile Tolk contract: fun main() { return 0; }"
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.
Tolk MCP Server
A Model Context Protocol (MCP) server for the Tolk compiler, enabling Large Language Models (LLMs) to compile and verify Tolk smart contract code for the TON blockchain.
Overview
This MCP server exposes the Tolk compiler functionality to AI assistants, allowing them to:
✅ Compile Tolk source code in real-time
✅ Verify code correctness before deployment
✅ Get compiled bytecode (BOC) and code hash
✅ Debug compilation errors with detailed messages
✅ Support multi-file projects
Related MCP server: iz-tolk-mcp
Supported Platforms
Platform | Transport | Status |
Claude Desktop | stdio | ✅ Supported |
ChatGPT | HTTP/SSE | ✅ Supported |
Other MCP Clients | Both | ✅ Supported |
Quick Start
Installation
# Install globally
npm install -g tolk-mcp-server
# Or install as project dependency
npm install tolk-mcp-server
# Or run directly with npx
npx tolk-mcp-serverFor Claude Desktop
Add to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tolk-compiler": {
"command": "npx",
"args": ["tolk-mcp-server"]
}
}
}For ChatGPT
Start the HTTP server:
npx tolk-mcp-server-httpExpose via ngrok (for testing):
ngrok http 3000Add in ChatGPT: Settings → Connectors → Advanced → Developer Mode → Add your URL
Available Tools
getTolkCompilerVersion
Returns the current Tolk compiler version.
Example: "0.7.0"runTolkCompiler
Compiles Tolk source code and returns the result.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | Main .tolk file name |
| Record<string, string> | Yes | Map of filename to source code |
| number (0-2) | No | Optimization level (default: 2) |
| boolean | No | Include stack comments in Fift output |
| string | No | Experimental compiler flags |
Success Response:
{
"status": "ok",
"fiftCode": "...",
"codeBoc64": "...",
"codeHashHex": "...",
"stderr": ""
}Error Response:
{
"status": "error",
"message": "Error description"
}Usage Examples
Ask Claude or ChatGPT:
Compile this Tolk contract:
fun onInternalMessage(myBalance: int, msgValue: int, msgFull: cell, msgBody: slice) {
// Simple contract
}The AI will use the Tolk compiler to verify and compile your code.
Development
Build from Source
# Clone repository
git clone https://github.com/robustfengbin/tolk-mcp-server.git
cd tolk-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm testAvailable Scripts
Script | Description |
| Run stdio server (for Claude Desktop) |
| Run HTTP server (for ChatGPT) |
| Build TypeScript |
| Run tests |
| Build and run stdio server |
| Build and run HTTP server |
Project Structure
tolk-mcp-server/
├── src/
│ ├── index.ts # stdio transport server
│ └── server-http.ts # HTTP/SSE transport server
├── test/
│ └── test.ts # Test suite
├── docs/
│ ├── USAGE.md # English documentation
│ └── USAGE_CN.md # Chinese documentation
├── Dockerfile # Docker deployment
├── package.json
└── README.mdDeployment
Docker
# Build image
docker build -t tolk-mcp-server .
# Run container
docker run -p 3000:3000 tolk-mcp-serverEnvironment Variables
Variable | Default | Description |
|
| HTTP server port |
|
| HTTP server host |
API Endpoints (HTTP Server)
Endpoint | Method | Description |
| POST | MCP JSON-RPC endpoint |
| GET | SSE stream for notifications |
| DELETE | Session termination |
| GET | Health check |
| GET | Server info |
Requirements
Node.js >= 18.0.0
Contributing
Contributions are welcome! Please read our Contributing Guide for details.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
References
Acknowledgments
This project was created as part of the TON Society Grants & Bounties program.
Available Tools
2 toolsgetTolkCompilerVersionA
Returns the current version of the Tolk compiler. Use this to check compiler compatibility.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does indicate this is a read-only operation by saying 'Returns,' and it implies no side effects, but it does not disclose the return format (e.g., whether it is a string, semver, or includes build metadata).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant detail. The core behavior is front-loaded, and the usage hint is appended efficiently without wasting tokens.
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?
Given the tool's low complexity, zero parameters, and simple return purpose, the description covers the essential invocation context. The only slight gap is that with no output schema, the exact return type/format is not specified, but this is not critical for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so there are no parameter semantics to explain. Per the calibration, zero-parameter tools receive a baseline of 4, and the description correctly focuses on the return value instead.
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 uses the specific verb 'Returns' and names the exact resource—'the current version of the Tolk compiler.' It is clearly distinguishable from sibling runTolkCompiler, which presumably executes compilation rather than reporting version information.
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 statement 'Use this to check compiler compatibility' gives a clear, concrete use case for the tool. However, it does not explicitly mention the alternative sibling tool or state when not to use this tool, so there is no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runTolkCompilerA
Compiles Tolk source code and returns the compilation result.
On success, returns:
fiftCode: Generated Fift assembler code
codeBoc64: Base64-encoded BOC (Bag of Cells) containing the compiled contract
codeHashHex: Hexadecimal hash of the compiled code
stderr: Any compiler warnings
On error, returns:
status: "error"
message: Description of the compilation error
Use this tool to verify that Tolk code compiles correctly and to obtain the compiled bytecode.
| Name | Required | Description | Default |
|---|---|---|---|
| sources | Yes | A map of filename to source code content. Must include the entrypoint file and any imported files. | |
| optimizationLevel | No | Optimization level for the compiler (0-2). Default is 2. Higher levels produce more optimized code. | |
| withStackComments | No | Include stack annotations in the generated Fift output. Default is false. | |
| entrypointFileName | Yes | The name of the main .tolk file to compile | |
| experimentalOptions | No | Experimental compiler flags (space-separated) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses success and error return structures in detail (fiftCode, codeBoc64, codeHashHex, stderr; status and message on error), which is more than most. It does not mention side effects, but compilation is a pure operation; it also omits permission or rate-limit context, which is acceptable for a compiler 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?
The description is well-organized with clear sections for success and error outputs, and the primary purpose is stated up front. It is slightly verbose but every sentence contributes to understanding the tool's behavior and outputs, avoiding fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters, one nested object, and no output schema; the description compensates by explicitly listing return fields and error structure. It does not describe parameter semantics (covered by schema) or limitations like file size caps, but overall it provides enough context for an agent to call the tool correctly.
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 five parameters are documented in the schema itself. The description adds no extra parameter-level detail beyond what the schema already provides. Per the rubric, the baseline is 3 when schema coverage is high, and no additional value is offered.
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 opens with a specific verb and resource: 'Compiles Tolk source code and returns the compilation result.' It clearly differentiates from the sibling tool getTolkCompilerVersion, which is about version retrieval. The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description ends with 'Use this tool to verify that Tolk code compiles correctly and to obtain the compiled bytecode,' providing a clear when-to-use statement. It doesn't explicitly mention exclusions or the sibling tool, but the sibling's purpose is distinct enough that no confusion is likely.
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.
2 tool updates
v1.0.0- First observed
getTolkCompilerVersion - First observed
runTolkCompiler
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one retrieves the compiler version, the other compiles source code. There is no overlap or ambiguity between them.
Both tool names follow the same camelCase verb-object pattern ('getTolkCompilerVersion' and 'runTolkCompiler'), making the naming predictable and consistent.
With only two tools, the server is slightly below the typical 3-15 range, but the narrow scope (compiling Tolk code) justifies the minimal set. Each tool is essential and earns its place.
The server covers the full operation cycle for a compiler: checking version and compiling code. The compile result includes all necessary outputs (Fift code, BOC, hash, warnings) and error handling, so there are no obvious gaps.
Related MCP Connectors
The OpenZeppelin Solidity Contracts MCP server integrates OpenZeppelin's security and style rules into AI-driven development workflows, enabling AI assistants to generate safe, correct, and production-ready smart contracts. It automatically validates generated code against OpenZeppelin standards (including imports, modifiers, naming conventions, and security checks) and supports various contract types including ERC-20, ERC-721, ERC-1155, Stablecoins, RWA, Governor, and Account contracts through prompt-driven workflows.
Architecture compiler for AI code. 11 tools, 92 actions, 872 Lean4 proofs, 100/100 self-cert.
OpenAI-compatible LLM MCP (7 tools); chat via balance key or x402 USDC on Base
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
Related MCP Servers
- FlicenseAqualityDmaintenanceIntegrates the Quint formal specification language into LLM workflows for accessible formal verification. It provides tools for type-checking, random simulation, exhaustive model checking, and syntax documentation.62-
- AlicenseAqualityCmaintenanceMCP server for the Tolk smart contract compiler on the TON blockchain. Compile, syntax check, deploy link generation, language docs, stdlib, and contract prompts.438 npm2MIT
- FlicenseAqualityDmaintenanceCompile, validate, and explore TON smart contracts using the Tolk compiler from any MCP-compatible AI assistant.3-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to audit, migrate, scaffold, and manage TON smart contracts using the TON Dev Skills platform.10 npm1MIT