iz-tolk-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +322 -0
- package/README.ru.md +322 -0
- package/dist/content/changelog.md +191 -0
- package/dist/content/example-counter.tolk +105 -0
- package/dist/content/example-jetton.tolk +131 -0
- package/dist/content/language-guide.md +827 -0
- package/dist/content/stdlib-reference.md +229 -0
- package/dist/content/tolk-vs-func.md +332 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts.d.ts +2 -0
- package/dist/prompts.js +206 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +2 -0
- package/dist/resources.js +80 -0
- package/dist/resources.js.map +1 -0
- package/dist/tools.d.ts +2 -0
- package/dist/tools.js +250 -0
- package/dist/tools.js.map +1 -0
- package/package.json +63 -0
package/README.md
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
[English](README.md) | [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
# iz-tolk-mcp
|
|
4
|
+
|
|
5
|
+
MCP server for the Tolk smart contract compiler — compile, check, and deploy TON blockchain smart contracts from any MCP-compatible AI assistant.
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
**iz-tolk-mcp** is a [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that brings the [Tolk](https://docs.ton.org/v3/documentation/smart-contracts/tolk/overview) smart contract compiler directly into AI assistants like Claude, enabling a seamless write-compile-deploy workflow for TON blockchain development.
|
|
10
|
+
|
|
11
|
+
- **Tolk** is the next-generation smart contract language for the TON blockchain, designed as a modern successor to FunC with familiar syntax (C/TypeScript-like), type safety, and cleaner semantics.
|
|
12
|
+
- **MCP** (Model Context Protocol) is an open standard that lets AI assistants use external tools, access data sources, and follow guided workflows — turning them into capable development environments.
|
|
13
|
+
|
|
14
|
+
With this server, an AI assistant can write Tolk code, compile it, check for errors, read language documentation, and generate wallet-ready deployment links — all without leaving the conversation.
|
|
15
|
+
|
|
16
|
+
## Features
|
|
17
|
+
|
|
18
|
+
- **4 MCP Tools** — `compile_tolk`, `check_tolk_syntax`, `get_compiler_version`, `generate_deploy_link`
|
|
19
|
+
- **6 MCP Resources** — language guide, stdlib reference, changelog, FunC migration guide, example contracts
|
|
20
|
+
- **3 MCP Prompts** — guided workflows for writing, reviewing, and debugging smart contracts
|
|
21
|
+
- **Full compiler options** — optimization levels (0-2), stack comments, multi-file compilation
|
|
22
|
+
- **Multi-file support** — compile projects with multiple `.tolk` source files and `@stdlib/*` imports
|
|
23
|
+
- **Compiler changelog** — built-in version history from v0.6 to latest
|
|
24
|
+
- **Deployment links** — generate `ton://` deeplinks and Tonkeeper URLs for wallet deployment
|
|
25
|
+
- **Zero configuration** — runs via `npx` with no external dependencies beyond Node.js
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx iz-tolk-mcp
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The server communicates over stdio and is designed to be launched by an MCP client.
|
|
34
|
+
|
|
35
|
+
## Installation
|
|
36
|
+
|
|
37
|
+
### Option A: npx (no install needed)
|
|
38
|
+
|
|
39
|
+
MCP clients launch the server automatically — just add it to your configuration (see below).
|
|
40
|
+
|
|
41
|
+
### Option B: Global install
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install -g iz-tolk-mcp
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Option C: Clone and build
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git clone https://github.com/izzzzzi/izTolkMcp.git
|
|
51
|
+
cd iz-tolk-mcp
|
|
52
|
+
npm install
|
|
53
|
+
npm run build
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
> **Requirement:** Node.js >= 18
|
|
57
|
+
|
|
58
|
+
## Configuration for MCP Clients
|
|
59
|
+
|
|
60
|
+
### Claude Desktop
|
|
61
|
+
|
|
62
|
+
File: `claude_desktop_config.json`
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"mcpServers": {
|
|
67
|
+
"tolk": {
|
|
68
|
+
"command": "npx",
|
|
69
|
+
"args": ["-y", "iz-tolk-mcp"]
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Cursor
|
|
76
|
+
|
|
77
|
+
File: `.cursor/mcp.json`
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"mcpServers": {
|
|
82
|
+
"tolk": {
|
|
83
|
+
"command": "npx",
|
|
84
|
+
"args": ["-y", "iz-tolk-mcp"]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Windsurf
|
|
91
|
+
|
|
92
|
+
File: `~/.windsurf/mcp.json`
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"mcpServers": {
|
|
97
|
+
"tolk": {
|
|
98
|
+
"command": "npx",
|
|
99
|
+
"args": ["-y", "iz-tolk-mcp"]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Local build (any client)
|
|
106
|
+
|
|
107
|
+
If you cloned and built the project locally:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"mcpServers": {
|
|
112
|
+
"tolk": {
|
|
113
|
+
"command": "node",
|
|
114
|
+
"args": ["/absolute/path/to/iz-tolk-mcp/dist/index.js"]
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Tools Reference
|
|
121
|
+
|
|
122
|
+
### `get_compiler_version`
|
|
123
|
+
|
|
124
|
+
Returns the version of the Tolk compiler bundled in `@ton/tolk-js` (WASM).
|
|
125
|
+
|
|
126
|
+
| Parameter | Type | Required | Description |
|
|
127
|
+
|-----------|------|----------|-------------|
|
|
128
|
+
| *(none)* | — | — | No parameters |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### `compile_tolk`
|
|
133
|
+
|
|
134
|
+
Compiles Tolk smart contract source code. Returns Fift output, BoC (Bag of Cells) in base64, and the code hash.
|
|
135
|
+
|
|
136
|
+
| Parameter | Type | Required | Description |
|
|
137
|
+
|-----------|------|----------|-------------|
|
|
138
|
+
| `entrypointFileName` | `string` | Yes | The main `.tolk` file to compile (e.g., `"main.tolk"`) |
|
|
139
|
+
| `sources` | `object` | Yes | Map of `filename -> source code`. Must include the entrypoint file. |
|
|
140
|
+
| `optimizationLevel` | `number` | No | Optimization level 0-2 (default: 2) |
|
|
141
|
+
| `withStackComments` | `boolean` | No | Include stack layout comments in Fift output |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### `check_tolk_syntax`
|
|
146
|
+
|
|
147
|
+
Checks Tolk source code for syntax and type errors without returning full compilation output. Faster feedback loop for iterative development.
|
|
148
|
+
|
|
149
|
+
| Parameter | Type | Required | Description |
|
|
150
|
+
|-----------|------|----------|-------------|
|
|
151
|
+
| `entrypointFileName` | `string` | Yes | The main `.tolk` file to check |
|
|
152
|
+
| `sources` | `object` | Yes | Map of `filename -> source code` |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### `generate_deploy_link`
|
|
157
|
+
|
|
158
|
+
Generates TON deployment deeplinks for a compiled contract. Computes the deterministic contract address and returns `ton://` and Tonkeeper links ready for wallet deployment.
|
|
159
|
+
|
|
160
|
+
| Parameter | Type | Required | Description |
|
|
161
|
+
|-----------|------|----------|-------------|
|
|
162
|
+
| `codeBoc64` | `string` | Yes | Base64-encoded BoC of compiled contract code (from `compile_tolk`) |
|
|
163
|
+
| `initialDataBoc64` | `string` | No | Base64-encoded BoC for initial data cell (default: empty cell) |
|
|
164
|
+
| `workchain` | `number` | No | Target workchain ID (default: 0) |
|
|
165
|
+
| `amount` | `string` | No | Deploy amount in nanoTON (default: `"50000000"` = 0.05 TON) |
|
|
166
|
+
|
|
167
|
+
## Resources Reference
|
|
168
|
+
|
|
169
|
+
| Resource | URI | Description |
|
|
170
|
+
|----------|-----|-------------|
|
|
171
|
+
| `language-guide` | `tolk://docs/language-guide` | Complete Tolk language syntax reference |
|
|
172
|
+
| `stdlib-reference` | `tolk://docs/stdlib-reference` | Standard library modules and functions reference |
|
|
173
|
+
| `changelog` | `tolk://docs/changelog` | Tolk compiler version history from v0.6 to latest |
|
|
174
|
+
| `tolk-vs-func` | `tolk://docs/tolk-vs-func` | FunC to Tolk migration guide — key differences and comparison |
|
|
175
|
+
| `example-counter` | `tolk://examples/counter` | Simple counter smart contract example in Tolk |
|
|
176
|
+
| `example-jetton` | `tolk://examples/jetton` | Jetton (fungible token) minter contract example in Tolk |
|
|
177
|
+
|
|
178
|
+
## Prompts Reference
|
|
179
|
+
|
|
180
|
+
### `write_smart_contract`
|
|
181
|
+
|
|
182
|
+
Guided workflow for writing a new Tolk smart contract on TON. Injects the language reference and a relevant example contract into the conversation context.
|
|
183
|
+
|
|
184
|
+
| Argument | Type | Required | Description |
|
|
185
|
+
|----------|------|----------|-------------|
|
|
186
|
+
| `description` | `string` | Yes | Description of what the smart contract should do |
|
|
187
|
+
| `contractType` | `"counter" \| "jetton" \| "nft" \| "wallet" \| "custom"` | No | Type of contract to create (default: `"custom"`) |
|
|
188
|
+
|
|
189
|
+
### `review_smart_contract`
|
|
190
|
+
|
|
191
|
+
Security-focused review of a Tolk smart contract. Checks for access control, message handling, integer overflow, gas management, storage integrity, and TON-specific vulnerabilities.
|
|
192
|
+
|
|
193
|
+
| Argument | Type | Required | Description |
|
|
194
|
+
|----------|------|----------|-------------|
|
|
195
|
+
| `code` | `string` | Yes | The Tolk smart contract source code to review |
|
|
196
|
+
|
|
197
|
+
### `debug_compilation_error`
|
|
198
|
+
|
|
199
|
+
Diagnose and fix a Tolk compilation error. Analyzes the error against the language reference and provides corrected code.
|
|
200
|
+
|
|
201
|
+
| Argument | Type | Required | Description |
|
|
202
|
+
|----------|------|----------|-------------|
|
|
203
|
+
| `errorMessage` | `string` | Yes | The compilation error message from the Tolk compiler |
|
|
204
|
+
| `code` | `string` | Yes | The Tolk source code that failed to compile |
|
|
205
|
+
|
|
206
|
+
## Usage Examples
|
|
207
|
+
|
|
208
|
+
Once configured, you can interact with the Tolk MCP server through natural language in your AI assistant:
|
|
209
|
+
|
|
210
|
+
**Compile a contract:**
|
|
211
|
+
|
|
212
|
+
> "Compile this Tolk smart contract:"
|
|
213
|
+
> ```tolk
|
|
214
|
+
> import "@stdlib/tvm-dicts";
|
|
215
|
+
>
|
|
216
|
+
> fun onInternalMessage(myBalance: int, msgValue: int, msgFull: cell, msgBody: slice) {
|
|
217
|
+
> // handle messages
|
|
218
|
+
> }
|
|
219
|
+
> ```
|
|
220
|
+
|
|
221
|
+
The assistant will call `compile_tolk` and return the compiled BoC, code hash, and Fift output.
|
|
222
|
+
|
|
223
|
+
**Check syntax during development:**
|
|
224
|
+
|
|
225
|
+
> "Check if this Tolk code has any errors — I just want a quick syntax check, not the full compilation output."
|
|
226
|
+
|
|
227
|
+
The assistant will use `check_tolk_syntax` for faster feedback without returning Fift/BoC.
|
|
228
|
+
|
|
229
|
+
**Write a new contract from scratch:**
|
|
230
|
+
|
|
231
|
+
> "Write a simple counter contract for TON that stores a number and lets anyone increment it. Include a getter to read the current value."
|
|
232
|
+
|
|
233
|
+
The assistant will use the `write_smart_contract` prompt, which injects the Tolk language guide and a relevant example, then iteratively compiles until the contract is error-free.
|
|
234
|
+
|
|
235
|
+
**Review an existing contract:**
|
|
236
|
+
|
|
237
|
+
> "Review this contract for security issues" *(paste code)*
|
|
238
|
+
|
|
239
|
+
The assistant will use `review_smart_contract` to perform a structured security audit covering access control, gas management, and TON-specific attack vectors.
|
|
240
|
+
|
|
241
|
+
**Debug a compilation error:**
|
|
242
|
+
|
|
243
|
+
> "I'm getting this error when compiling: `unexpected token 'fun'` — here's my code:" *(paste code)*
|
|
244
|
+
|
|
245
|
+
The assistant will use `debug_compilation_error` to diagnose the issue against the language reference and provide a fix.
|
|
246
|
+
|
|
247
|
+
**Generate a deploy link:**
|
|
248
|
+
|
|
249
|
+
> "Generate a deployment link for the contract we just compiled."
|
|
250
|
+
|
|
251
|
+
The assistant will take the BoC from the previous compilation and call `generate_deploy_link` to produce a `ton://` deeplink you can open in Tonkeeper or any TON wallet.
|
|
252
|
+
|
|
253
|
+
## Development
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
git clone https://github.com/izzzzzi/izTolkMcp.git
|
|
257
|
+
cd iz-tolk-mcp
|
|
258
|
+
npm install # Install dependencies
|
|
259
|
+
npm run build # Compile TypeScript + copy content files
|
|
260
|
+
npm run dev # Run with tsx (hot reload for development)
|
|
261
|
+
npm test # Run test suite (vitest)
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Code Quality
|
|
265
|
+
|
|
266
|
+
Pre-commit hooks enforce code quality automatically:
|
|
267
|
+
|
|
268
|
+
- **Biome** — fast linter and formatter for TypeScript
|
|
269
|
+
- **Husky** — Git hooks manager
|
|
270
|
+
- **lint-staged** — runs checks only on staged files
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
npm run lint # Check for lint errors
|
|
274
|
+
npm run lint:fix # Fix lint errors automatically
|
|
275
|
+
npm run format # Format code with Biome
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Pre-commit hook runs `biome check --write` and `biome format --write` on all staged `.ts` files.
|
|
279
|
+
|
|
280
|
+
## CI/CD
|
|
281
|
+
|
|
282
|
+
This project uses automated CI/CD:
|
|
283
|
+
|
|
284
|
+
- **GitHub Actions** — build, test, and lint on every push and PR
|
|
285
|
+
- **Semantic Release** — automated versioning based on [Conventional Commits](https://www.conventionalcommits.org/):
|
|
286
|
+
- `feat:` — minor version bump (1.x.0)
|
|
287
|
+
- `fix:` — patch version bump (1.0.x)
|
|
288
|
+
- `feat!:` or `BREAKING CHANGE:` — major version bump (x.0.0)
|
|
289
|
+
- `chore:`, `docs:`, `refactor:` — no release
|
|
290
|
+
- **Dependabot** — automated weekly dependency updates
|
|
291
|
+
|
|
292
|
+
Releases are published to npm automatically when changes are pushed to `main`.
|
|
293
|
+
|
|
294
|
+
## Architecture
|
|
295
|
+
|
|
296
|
+
The server is organized into focused modules:
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
src/
|
|
300
|
+
index.ts — Server initialization and stdio transport
|
|
301
|
+
tools.ts — 4 MCP tools (compile, check, version, deploy)
|
|
302
|
+
resources.ts — 6 MCP resources (docs, examples)
|
|
303
|
+
prompts.ts — 3 MCP prompts (write, review, debug)
|
|
304
|
+
content/ — Bundled documentation and example contracts
|
|
305
|
+
language-guide.md
|
|
306
|
+
stdlib-reference.md
|
|
307
|
+
changelog.md
|
|
308
|
+
tolk-vs-func.md
|
|
309
|
+
example-counter.tolk
|
|
310
|
+
example-jetton.tolk
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Key dependencies:
|
|
314
|
+
|
|
315
|
+
- `@modelcontextprotocol/sdk` — MCP server framework
|
|
316
|
+
- `@ton/tolk-js` — Tolk compiler (WASM, runs locally)
|
|
317
|
+
- `@ton/core` — TON primitives for address computation and cell serialization
|
|
318
|
+
- `zod` — Schema validation for tool parameters
|
|
319
|
+
|
|
320
|
+
## License
|
|
321
|
+
|
|
322
|
+
MIT
|
package/README.ru.md
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
[English](README.md) | [Русский](README.ru.md)
|
|
2
|
+
|
|
3
|
+
# iz-tolk-mcp
|
|
4
|
+
|
|
5
|
+
MCP-сервер для компилятора смарт-контрактов Tolk — компиляция, проверка и деплой смарт-контрактов блокчейна TON из любого AI-ассистента с поддержкой MCP.
|
|
6
|
+
|
|
7
|
+
## Обзор
|
|
8
|
+
|
|
9
|
+
**iz-tolk-mcp** — это сервер [Model Context Protocol](https://modelcontextprotocol.io/) (MCP), который интегрирует компилятор смарт-контрактов [Tolk](https://docs.ton.org/v3/documentation/smart-contracts/tolk/overview) непосредственно в AI-ассистенты, такие как Claude, обеспечивая бесшовный рабочий процесс «написание — компиляция — деплой» для разработки на блокчейне TON.
|
|
10
|
+
|
|
11
|
+
- **Tolk** — это язык смарт-контрактов нового поколения для блокчейна TON, созданный как современный преемник FunC с привычным синтаксисом (в стиле C/TypeScript), типобезопасностью и более чистой семантикой.
|
|
12
|
+
- **MCP** (Model Context Protocol) — это открытый стандарт, позволяющий AI-ассистентам использовать внешние инструменты, получать доступ к источникам данных и следовать управляемым рабочим процессам, превращая их в полноценные среды разработки.
|
|
13
|
+
|
|
14
|
+
С помощью этого сервера AI-ассистент может писать код на Tolk, компилировать его, проверять на ошибки, читать документацию языка и генерировать ссылки для деплоя через кошелёк — и всё это не выходя из диалога.
|
|
15
|
+
|
|
16
|
+
## Возможности
|
|
17
|
+
|
|
18
|
+
- **4 MCP-инструмента** — `compile_tolk`, `check_tolk_syntax`, `get_compiler_version`, `generate_deploy_link`
|
|
19
|
+
- **6 MCP-ресурсов** — руководство по языку, справочник стандартной библиотеки, журнал изменений, руководство по миграции с FunC, примеры контрактов
|
|
20
|
+
- **3 MCP-промпта** — управляемые рабочие процессы для написания, ревью и отладки смарт-контрактов
|
|
21
|
+
- **Полный набор опций компилятора** — уровни оптимизации (0-2), комментарии стека, многофайловая компиляция
|
|
22
|
+
- **Многофайловая поддержка** — компиляция проектов с несколькими файлами `.tolk` и импортами `@stdlib/*`
|
|
23
|
+
- **Журнал изменений компилятора** — встроенная история версий от v0.6 до последней
|
|
24
|
+
- **Ссылки для деплоя** — генерация deeplink-ов `ton://` и URL-ов Tonkeeper для деплоя через кошелёк
|
|
25
|
+
- **Без настройки** — запускается через `npx` без внешних зависимостей, кроме Node.js
|
|
26
|
+
|
|
27
|
+
## Быстрый старт
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx iz-tolk-mcp
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Сервер взаимодействует через stdio и предназначен для запуска MCP-клиентом.
|
|
34
|
+
|
|
35
|
+
## Установка
|
|
36
|
+
|
|
37
|
+
### Вариант A: npx (установка не требуется)
|
|
38
|
+
|
|
39
|
+
MCP-клиенты запускают сервер автоматически — просто добавьте его в конфигурацию (см. ниже).
|
|
40
|
+
|
|
41
|
+
### Вариант B: Глобальная установка
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install -g iz-tolk-mcp
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Вариант C: Клонирование и сборка
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git clone https://github.com/izzzzzi/izTolkMcp.git
|
|
51
|
+
cd iz-tolk-mcp
|
|
52
|
+
npm install
|
|
53
|
+
npm run build
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
> **Требование:** Node.js >= 18
|
|
57
|
+
|
|
58
|
+
## Настройка MCP-клиентов
|
|
59
|
+
|
|
60
|
+
### Claude Desktop
|
|
61
|
+
|
|
62
|
+
Файл: `claude_desktop_config.json`
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"mcpServers": {
|
|
67
|
+
"tolk": {
|
|
68
|
+
"command": "npx",
|
|
69
|
+
"args": ["-y", "iz-tolk-mcp"]
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Cursor
|
|
76
|
+
|
|
77
|
+
Файл: `.cursor/mcp.json`
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"mcpServers": {
|
|
82
|
+
"tolk": {
|
|
83
|
+
"command": "npx",
|
|
84
|
+
"args": ["-y", "iz-tolk-mcp"]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Windsurf
|
|
91
|
+
|
|
92
|
+
Файл: `~/.windsurf/mcp.json`
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"mcpServers": {
|
|
97
|
+
"tolk": {
|
|
98
|
+
"command": "npx",
|
|
99
|
+
"args": ["-y", "iz-tolk-mcp"]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Локальная сборка (любой клиент)
|
|
106
|
+
|
|
107
|
+
Если вы клонировали и собрали проект локально:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"mcpServers": {
|
|
112
|
+
"tolk": {
|
|
113
|
+
"command": "node",
|
|
114
|
+
"args": ["/absolute/path/to/iz-tolk-mcp/dist/index.js"]
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Справочник инструментов
|
|
121
|
+
|
|
122
|
+
### `get_compiler_version`
|
|
123
|
+
|
|
124
|
+
Возвращает версию компилятора Tolk, входящего в состав `@ton/tolk-js` (WASM).
|
|
125
|
+
|
|
126
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
127
|
+
|----------|-----|--------------|----------|
|
|
128
|
+
| *(нет)* | — | — | Без параметров |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### `compile_tolk`
|
|
133
|
+
|
|
134
|
+
Компилирует исходный код смарт-контракта на Tolk. Возвращает Fift-вывод, BoC (Bag of Cells) в base64 и хеш кода.
|
|
135
|
+
|
|
136
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
137
|
+
|----------|-----|--------------|----------|
|
|
138
|
+
| `entrypointFileName` | `string` | Да | Главный файл `.tolk` для компиляции (например, `"main.tolk"`) |
|
|
139
|
+
| `sources` | `object` | Да | Словарь `имя файла -> исходный код`. Должен включать файл точки входа. |
|
|
140
|
+
| `optimizationLevel` | `number` | Нет | Уровень оптимизации 0-2 (по умолчанию: 2) |
|
|
141
|
+
| `withStackComments` | `boolean` | Нет | Включить комментарии расположения стека в Fift-вывод |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### `check_tolk_syntax`
|
|
146
|
+
|
|
147
|
+
Проверяет исходный код на Tolk на синтаксические и типовые ошибки без возврата полного результата компиляции. Более быстрая обратная связь для итеративной разработки.
|
|
148
|
+
|
|
149
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
150
|
+
|----------|-----|--------------|----------|
|
|
151
|
+
| `entrypointFileName` | `string` | Да | Главный файл `.tolk` для проверки |
|
|
152
|
+
| `sources` | `object` | Да | Словарь `имя файла -> исходный код` |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### `generate_deploy_link`
|
|
157
|
+
|
|
158
|
+
Генерирует deeplink-и для деплоя скомпилированного контракта в сети TON. Вычисляет детерминированный адрес контракта и возвращает ссылки `ton://` и Tonkeeper, готовые для деплоя через кошелёк.
|
|
159
|
+
|
|
160
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
161
|
+
|----------|-----|--------------|----------|
|
|
162
|
+
| `codeBoc64` | `string` | Да | BoC скомпилированного кода контракта в base64 (из `compile_tolk`) |
|
|
163
|
+
| `initialDataBoc64` | `string` | Нет | BoC начальной ячейки данных в base64 (по умолчанию: пустая ячейка) |
|
|
164
|
+
| `workchain` | `number` | Нет | ID целевого воркчейна (по умолчанию: 0) |
|
|
165
|
+
| `amount` | `string` | Нет | Сумма деплоя в наноTON (по умолчанию: `"50000000"` = 0.05 TON) |
|
|
166
|
+
|
|
167
|
+
## Справочник ресурсов
|
|
168
|
+
|
|
169
|
+
| Ресурс | URI | Описание |
|
|
170
|
+
|--------|-----|----------|
|
|
171
|
+
| `language-guide` | `tolk://docs/language-guide` | Полный справочник синтаксиса языка Tolk |
|
|
172
|
+
| `stdlib-reference` | `tolk://docs/stdlib-reference` | Справочник модулей и функций стандартной библиотеки |
|
|
173
|
+
| `changelog` | `tolk://docs/changelog` | История версий компилятора Tolk от v0.6 до последней |
|
|
174
|
+
| `tolk-vs-func` | `tolk://docs/tolk-vs-func` | Руководство по миграции с FunC на Tolk — ключевые отличия и сравнение |
|
|
175
|
+
| `example-counter` | `tolk://examples/counter` | Пример простого смарт-контракта счётчика на Tolk |
|
|
176
|
+
| `example-jetton` | `tolk://examples/jetton` | Пример контракта минтера Jetton (взаимозаменяемый токен) на Tolk |
|
|
177
|
+
|
|
178
|
+
## Справочник промптов
|
|
179
|
+
|
|
180
|
+
### `write_smart_contract`
|
|
181
|
+
|
|
182
|
+
Управляемый рабочий процесс для написания нового смарт-контракта на Tolk для TON. Внедряет справочник языка и релевантный пример контракта в контекст диалога.
|
|
183
|
+
|
|
184
|
+
| Аргумент | Тип | Обязательный | Описание |
|
|
185
|
+
|----------|-----|--------------|----------|
|
|
186
|
+
| `description` | `string` | Да | Описание того, что должен делать смарт-контракт |
|
|
187
|
+
| `contractType` | `"counter" \| "jetton" \| "nft" \| "wallet" \| "custom"` | Нет | Тип создаваемого контракта (по умолчанию: `"custom"`) |
|
|
188
|
+
|
|
189
|
+
### `review_smart_contract`
|
|
190
|
+
|
|
191
|
+
Ревью смарт-контракта на Tolk с фокусом на безопасность. Проверяет контроль доступа, обработку сообщений, целочисленное переполнение, управление газом, целостность хранилища и уязвимости, специфичные для TON.
|
|
192
|
+
|
|
193
|
+
| Аргумент | Тип | Обязательный | Описание |
|
|
194
|
+
|----------|-----|--------------|----------|
|
|
195
|
+
| `code` | `string` | Да | Исходный код смарт-контракта на Tolk для ревью |
|
|
196
|
+
|
|
197
|
+
### `debug_compilation_error`
|
|
198
|
+
|
|
199
|
+
Диагностика и исправление ошибки компиляции Tolk. Анализирует ошибку на основе справочника языка и предоставляет исправленный код.
|
|
200
|
+
|
|
201
|
+
| Аргумент | Тип | Обязательный | Описание |
|
|
202
|
+
|----------|-----|--------------|----------|
|
|
203
|
+
| `errorMessage` | `string` | Да | Сообщение об ошибке компиляции от компилятора Tolk |
|
|
204
|
+
| `code` | `string` | Да | Исходный код на Tolk, который не удалось скомпилировать |
|
|
205
|
+
|
|
206
|
+
## Примеры использования
|
|
207
|
+
|
|
208
|
+
После настройки вы можете взаимодействовать с MCP-сервером Tolk через естественный язык в вашем AI-ассистенте:
|
|
209
|
+
|
|
210
|
+
**Компиляция контракта:**
|
|
211
|
+
|
|
212
|
+
> «Скомпилируй этот смарт-контракт на Tolk:»
|
|
213
|
+
> ```tolk
|
|
214
|
+
> import "@stdlib/tvm-dicts";
|
|
215
|
+
>
|
|
216
|
+
> fun onInternalMessage(myBalance: int, msgValue: int, msgFull: cell, msgBody: slice) {
|
|
217
|
+
> // handle messages
|
|
218
|
+
> }
|
|
219
|
+
> ```
|
|
220
|
+
|
|
221
|
+
Ассистент вызовет `compile_tolk` и вернёт скомпилированный BoC, хеш кода и Fift-вывод.
|
|
222
|
+
|
|
223
|
+
**Проверка синтаксиса во время разработки:**
|
|
224
|
+
|
|
225
|
+
> «Проверь, есть ли ошибки в этом коде на Tolk — мне нужна только быстрая проверка синтаксиса, без полного результата компиляции.»
|
|
226
|
+
|
|
227
|
+
Ассистент использует `check_tolk_syntax` для более быстрой обратной связи без возврата Fift/BoC.
|
|
228
|
+
|
|
229
|
+
**Написание нового контракта с нуля:**
|
|
230
|
+
|
|
231
|
+
> «Напиши простой контракт счётчика для TON, который хранит число и позволяет кому угодно его увеличивать. Добавь геттер для чтения текущего значения.»
|
|
232
|
+
|
|
233
|
+
Ассистент использует промпт `write_smart_contract`, который внедряет руководство по языку Tolk и релевантный пример, а затем итеративно компилирует, пока контракт не будет без ошибок.
|
|
234
|
+
|
|
235
|
+
**Ревью существующего контракта:**
|
|
236
|
+
|
|
237
|
+
> «Проверь этот контракт на проблемы безопасности» *(вставьте код)*
|
|
238
|
+
|
|
239
|
+
Ассистент использует `review_smart_contract` для проведения структурированного аудита безопасности, охватывающего контроль доступа, управление газом и векторы атак, специфичные для TON.
|
|
240
|
+
|
|
241
|
+
**Отладка ошибки компиляции:**
|
|
242
|
+
|
|
243
|
+
> «Я получаю эту ошибку при компиляции: `unexpected token 'fun'` — вот мой код:» *(вставьте код)*
|
|
244
|
+
|
|
245
|
+
Ассистент использует `debug_compilation_error` для диагностики проблемы на основе справочника языка и предоставления исправления.
|
|
246
|
+
|
|
247
|
+
**Генерация ссылки для деплоя:**
|
|
248
|
+
|
|
249
|
+
> «Сгенерируй ссылку для деплоя контракта, который мы только что скомпилировали.»
|
|
250
|
+
|
|
251
|
+
Ассистент возьмёт BoC из предыдущей компиляции и вызовет `generate_deploy_link` для создания deeplink-а `ton://`, который можно открыть в Tonkeeper или любом кошельке TON.
|
|
252
|
+
|
|
253
|
+
## Разработка
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
git clone https://github.com/izzzzzi/izTolkMcp.git
|
|
257
|
+
cd iz-tolk-mcp
|
|
258
|
+
npm install # Установка зависимостей
|
|
259
|
+
npm run build # Компиляция TypeScript + копирование файлов контента
|
|
260
|
+
npm run dev # Запуск с tsx (горячая перезагрузка для разработки)
|
|
261
|
+
npm test # Запуск тестов (vitest)
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Качество кода
|
|
265
|
+
|
|
266
|
+
Pre-commit хуки автоматически обеспечивают качество кода:
|
|
267
|
+
|
|
268
|
+
- **Biome** — быстрый линтер и форматтер для TypeScript
|
|
269
|
+
- **Husky** — менеджер Git-хуков
|
|
270
|
+
- **lint-staged** — запускает проверки только для staged-файлов
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
npm run lint # Проверить на ошибки линтинга
|
|
274
|
+
npm run lint:fix # Автоматически исправить ошибки линтинга
|
|
275
|
+
npm run format # Форматировать код с помощью Biome
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Pre-commit хук запускает `biome check --write` и `biome format --write` для всех staged `.ts` файлов.
|
|
279
|
+
|
|
280
|
+
## CI/CD
|
|
281
|
+
|
|
282
|
+
Проект использует автоматизированный CI/CD:
|
|
283
|
+
|
|
284
|
+
- **GitHub Actions** — сборка, тестирование и линтинг при каждом push и PR
|
|
285
|
+
- **Semantic Release** — автоматическое версионирование на основе [Conventional Commits](https://www.conventionalcommits.org/):
|
|
286
|
+
- `feat:` — минорное обновление версии (1.x.0)
|
|
287
|
+
- `fix:` — патч-обновление версии (1.0.x)
|
|
288
|
+
- `feat!:` или `BREAKING CHANGE:` — мажорное обновление версии (x.0.0)
|
|
289
|
+
- `chore:`, `docs:`, `refactor:` — без релиза
|
|
290
|
+
- **Dependabot** — автоматическое еженедельное обновление зависимостей
|
|
291
|
+
|
|
292
|
+
Релизы публикуются в npm автоматически при пуше изменений в ветку `main`.
|
|
293
|
+
|
|
294
|
+
## Архитектура
|
|
295
|
+
|
|
296
|
+
Сервер организован в специализированные модули:
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
src/
|
|
300
|
+
index.ts — Инициализация сервера и stdio-транспорт
|
|
301
|
+
tools.ts — 4 MCP-инструмента (компиляция, проверка, версия, деплой)
|
|
302
|
+
resources.ts — 6 MCP-ресурсов (документация, примеры)
|
|
303
|
+
prompts.ts — 3 MCP-промпта (написание, ревью, отладка)
|
|
304
|
+
content/ — Встроенная документация и примеры контрактов
|
|
305
|
+
language-guide.md
|
|
306
|
+
stdlib-reference.md
|
|
307
|
+
changelog.md
|
|
308
|
+
tolk-vs-func.md
|
|
309
|
+
example-counter.tolk
|
|
310
|
+
example-jetton.tolk
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Ключевые зависимости:
|
|
314
|
+
|
|
315
|
+
- `@modelcontextprotocol/sdk` — фреймворк MCP-сервера
|
|
316
|
+
- `@ton/tolk-js` — компилятор Tolk (WASM, работает локально)
|
|
317
|
+
- `@ton/core` — примитивы TON для вычисления адресов и сериализации ячеек
|
|
318
|
+
- `zod` — валидация схем для параметров инструментов
|
|
319
|
+
|
|
320
|
+
## Лицензия
|
|
321
|
+
|
|
322
|
+
MIT
|