Surgical AST-based Python editing for AI agents — edit by symbol name, not text position. Built-in blast radius and token cost on every edit.
Project description
tokenspace-mcp
Surgical AST-based Python editing for AI agents — edit by symbol name, not text position. Built-in blast radius and token cost on every edit.
pip install tokenspace-mcp
Why
AI coding agents (Claude Code, Cursor, Aider) edit Python via string replacement or line numbers. This forces the agent to echo the old code to locate the edit, then echo the entire new file as output. On large files that wastes thousands of tokens per edit.
Tokenspace exposes four MCP tools that operate on symbol names:
edit_function_body("auth.py", "validate_token", new_body)
No echoing. No stale line numbers. Every edit returns a diff, a blast radius score, and a token cost — automatically.
Benchmark
Measured on 406 real functions across 10 popular OSS projects (requests, flask, fastapi, django, httpx, pydantic, black, click, rich). All files verified with libcst round-trip.
| Scenario | str_replace | Tokenspace | Reduction |
|---|---|---|---|
| Single edit — 406 functions total | 36,907 tokens | 18,674 tokens | 49.4% |
| 5 edits / same file — 10 files total | 70,948 tokens | 2,039 tokens | 95.4% |
The multi-edit gap is large because str_replace pays the full file on every call. Tokenspace pays for read_structure once and only the function name + new body per subsequent edit.
MCP Tools
| Tool | What it does |
|---|---|
read_structure |
File skeleton — signatures and line ranges, no bodies. ~3.4× cheaper than reading the file. |
edit_function_body |
Replace a top-level function body by name. Writes to disk. Returns diff + metrics. |
edit_class_method |
Replace a class method body by name. Writes to disk. Returns diff + metrics. |
measure_edit |
Dry-run: compute blast radius and token cost without writing. |
Metrics returned on every edit
- blast_radius — fraction of the file's symbols whose signature changed (0.0 = nothing changed structurally)
- patch_locality — how contained the edit is (1.0 = perfectly local)
- token_cost — tiktoken count of input + diff output
Install
pip install tokenspace-mcp
tokenspace install-skill
Then restart Claude Code. Tokenspace tools will be available automatically.
The second command:
- Copies the Claude Code skill to
.claude/SKILL.md - Registers the MCP server in
.claude/settings.json - After restart, Claude Code knows when and how to use all 4 tools
Optimal workflow
1. read_structure(file_path) → locate symbols, costs ~200 tokens
2. measure_edit(file_path, fn, body) → dry run, check blast_radius
3. edit_function_body / edit_class_method → write if metrics look good
4. Check result: success, diff, blast_radius, patch_locality, token_cost
For multiple edits on the same file, call read_structure once and skip measure_edit — the multi-edit token reduction reaches 95.4%.
Requirements
- Python ≥ 3.12
- Works with any MCP-compatible host (Claude Code, Continue, custom agents)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tokenspace_mcp-0.1.4.tar.gz.
File metadata
- Download URL: tokenspace_mcp-0.1.4.tar.gz
- Upload date:
- Size: 248.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6da1cc0bd3c3154da4e7b444a451de7d7aad6c1333583acbeba5e874abc513fe
|
|
| MD5 |
7fc02ff38ba7a4ee1cc576a8a9197ce7
|
|
| BLAKE2b-256 |
6e4698066448ab9d7a1511c1db18c02262bda177be82efc9444fc72026640230
|
File details
Details for the file tokenspace_mcp-0.1.4-py3-none-any.whl.
File metadata
- Download URL: tokenspace_mcp-0.1.4-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4aa95412e307d9adf073bcc9b52d329f2a8aa09d1e80a75866e68805cf011d91
|
|
| MD5 |
3f189da8f05df9c7f072fa3fffb09624
|
|
| BLAKE2b-256 |
fb29041e64626918f92a0dfab2ae1380c0ba07a613d8612ee7f97dad80428374
|