SymKit
SymKit is an MCP server providing a Mathematica-style symbolic computation engine, enabling AI agents to perform step-by-step mathematical derivations with verification, provenance tracking, and code generation — all driven by natural language.
Symbolic Math Operations: Execute ~25 operations via a single
mathtool: differentiation, integration, limits, series expansion, ODE solving, Laplace/Fourier transforms, vector calculus (gradient, divergence, curl, Laplacian), matrix operations (determinant, inverse, eigenvalues/eigenvectors), simplification (expand, factor, trigsimp, etc.), and more.Derivation Session Management: Start, resume, pause, rollback, annotate, and complete sessions with a full immutable audit trail of every step.
Verification: Symbolically verify individual steps or entire derivation chains for mathematical correctness.
High-Level Orchestration: Use
deriveandintent_executeto map natural-language goals to tool chains, with auto-loaded formulas and derivation plans across any quantitative domain (physics, engineering, chemistry, etc.).Symbolic Assumptions: Set and inspect variable assumptions (positive, real, integer, etc.) at global, domain, session, or step level, with conflict detection.
Formula Search & Management: Search a local YAML library or external sources (Wikidata, SciPy, BioModels), retrieve detailed formula info, and add custom formulas with metadata.
Symbol Registry: Register and look up semantic meanings, units, and aliases for symbols; detect ambiguous cross-domain conflicts.
Code & Report Generation: Export verified derivations as Python functions, LaTeX documents, Markdown reports, or standalone SymPy scripts.
Tool Discovery: List tools by category and get recommendations for specific tasks.
Click on "Install 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., "@SymKitDerive the angular frequency of a simple harmonic oscillator."
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.
SymKit
Mathematica-style symbolic computation, powered by LLMs.
🌐 English | 简体中文
What if you had Mathematica's symbolic engine, driven by natural language?
Mathematica gave us precise symbolic math. LLMs gave us natural-language reasoning. SymKit combines both.
It is an MCP server that lets AI agents perform step-by-step symbolic derivations: calculate, transform, verify, and store formulas with full provenance — all through conversation.
┌────────────────────────────────────────────────────────────────────┐
│ │
│ You describe the math in plain English │
│ ↓ │
│ SymKit executes, verifies, and records every step │
│ ↓ │
│ You get an exact, reusable formula with an audit trail │
│ │
└────────────────────────────────────────────────────────────────────┘Related MCP server: Symath-MCP
Why SymKit?
Traditional LLM | SymKit |
❌ "The answer is approximately..." | ✅ "The exact expression is..." |
❌ "Let me calculate that again" | ✅ Every step is recorded and verifiable |
❌ "I think these units work out" | ✅ Dimensional analysis checks every result |
❌ "Where did this formula come from?" | ✅ Full provenance: base formulas + derivation steps |
❌ Calculation is lost in chat history | ✅ Stored as reusable Markdown + YAML |
What it does
SymKit is not a formula database. It is a symbolic derivation engine that creates new formulas from existing ones.
Known formulas New formula
┌─────────────────┐ ┌────────────────────────────┐
│ F = -kx │ │ │
│ F = ma │ ──compose──▶ │ ω = √(k/m) │
│ d²x/dt² = a │ │ (simple harmonic oscillator) │
└─────────────────┘ └────────────────────────────┘Use it for physics, engineering, chemistry, biology, economics — any domain where you need to combine and transform mathematical relationships.
⚡ Four superpowers
Capability | What it means | Tools |
Derive | Combine base formulas into new ones |
|
Control | Review, annotate, and rollback every step |
|
Verify | Check correctness symbolically and dimensionally |
|
Ship | Turn results into Python, LaTeX, Markdown, or SymPy |
|
🚀 See it in action
Derive a physical law from first principles:
User: Derive the angular frequency of a simple harmonic oscillator.
SymKit:
1. Load F = -kx and F = m·d²x/dt²
2. Substitute → m·d²x/dt² = -kx
3. Solve ODE → x(t) = A·cos(ωt + φ), ω = √(k/m)
4. Verify by substitution: d²x/dt² = -ω²x ✓
5. Store result with full derivation historyBuild a custom engineering model:
User: Find the cutoff frequency of an RC high-pass filter.
SymKit:
1. Load Q = CV and V = IR
2. Derive capacitive reactance X_c = 1/(2πfC)
3. Set X_c = R at cutoff
4. Solve for f → f_c = 1 / (2πRC) ✓Verify a calculus result:
User: Calculate and verify ∫(x² + 3x) dx.
→ Result: x³/3 + 3x²/2 + C
→ Verify: d/dx(x³/3 + 3x²/2) = x² + 3x ✓🛠️ 41 MCP tools, one coherent workflow
SymKit exposes 41 MCP tools across 8 categories. Everything routes through a few high-level tools while power users can drop down to individual steps.
Category | Tools | Count |
Unified Math |
| 1 |
Session Management |
| 17 |
Assumptions |
| 6 |
Formula Search |
| 4 |
Symbol Registry |
| 4 |
Code Generation |
| 4 |
Derivation & Orchestration |
| 3 |
Tool Discovery |
| 2 |
The math() tool alone covers ~25 symbolic operations — calculus, ODEs, matrices, vector analysis, integral transforms — and can write its result directly into a derivation session.
🔍 Formula search workflow
SymKit can pull authoritative formulas from Wikidata and physical constants from SciPy, normalize LLM queries automatically, and load the chosen formula straight into a derivation session.
Recommended workflow:
1. Search
formula_search("Navier-Stokes equations", domain="fluid_dynamics")
2. Get and load
formula_get("Q201321", source="wikidata", load_into_session=True)
3. Derive
math("simplify", "...", session=True)
4. Complete
session_complete(description="Incompressible NS momentum equation")Query normalization: you can write queries naturally — fluid_dynamics, fluid mechanics, and cfd all resolve to the same domain; Navier–Stokes (en dash) and Navier-Stokes (hyphen) match the same Wikidata item.
MathML handling: Wikidata sometimes returns rendered MathML for search previews. Call formula_get on the result ID to retrieve the original LaTeX and a SymPy-ready string.
🎛️ You own every step
A derivation in SymKit is a chain of immutable, verifiable steps. You can:
Create —
session_record_stepRead —
session_get_steps,session_showAnnotate —
session_add_noteRollback —
session_rollbackVerify —
session_verify_step,session_verify_session
Expressions are never edited in place. If something goes wrong, roll back to the last good state and continue. This keeps the entire derivation reproducible.
🌍 Works with the MCP ecosystem
SymKit is designed to extend, not replace, your scientific computing stack. It handles derivation, verification, and provenance; raw symbolic computation and base formulas are delegated to SymPy-MCP.
When to use SymKit:
✅ Deriving new formulas from existing ones
✅ Building temperature/pressure/parameter-corrected models
✅ Creating custom models for any quantitative domain
✅ Producing verified, citable derivation results
When to use something else:
❌ Looking up basic physics formulas → use
sympy-mcp❌ Fetching physical constants → use
sympy-mcporSciPy❌ Clinical scoring → use
medical-calc-mcp❌ Reading textbook formulas → use the reference directly
📦 Get started in 60 seconds
Requirements
Python 3.10+
An MCP-compatible client: Claude Desktop, Claude Code, Cherry Studio, …
uv (recommended) or pip
Step 1 — Install SymKit
Pick one of the three install paths below. Each produces a runnable
symkit-mcp command you point your MCP client at in Step 3.
Option A — uv (recommended)
uv is a fast Python package manager. Install
SymKit as an isolated global CLI tool — no virtualenv to manage, no clashes
with your system Python:
# 1. Install uv itself (if you don't have it yet)
# macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 2. Install SymKit as a global CLI tool
uv tool install symkit-mcp
# 3. Verify it's on your PATH
symkit-mcp --versionuv tool install places a symkit-mcp entry point on your PATH. Upgrade later
with uv tool upgrade symkit-mcp, and uninstall with uv tool uninstall symkit-mcp.
No-install alternative:
uvx symkit-mcpruns the latest published release on the fly, caching it behind the scenes. Useful for one-off runs or for the MCP client config in Step 3 — nouv tool installrequired.
Option B — pip
# Install
pip install symkit-mcp
# Verify
symkit-mcp --versionPrefer pipx (pipx install symkit-mcp) if
you want each CLI tool in its own isolated environment.
Option C — From source (development or unreleased changes)
git clone https://github.com/LBurny/symkit-mcp.git
cd symkit-mcp
# Install the project + dev/test extras into a local .venv
uv sync --all-extras
# Run the server straight from the checkout — no install step needed
uv run symkit-mcpuv run executes against the local source tree, so you can edit and re-run
immediately. Pull the latest deps after changing pyproject.toml with
uv sync.
Step 2 — Where data lives
After install, SymKit stores runtime data in a per-user directory (resolved via
platformdirs): derived formulas and session JSONs persist under
~/.local/share/symkit/ (Linux), %LOCALAPPDATA%\symkit (Windows), or
~/Library/Application Support/symkit (macOS). Set the SYMKIT_DATA_DIR
environment variable to override this location. Seed formulas (Reynolds number,
Navier-Stokes, …) ship read-only inside the package; user-added formulas via
formula_add are written to the writable overlay and override seeds by id.
Step 3 — Connect to your client
SymKit speaks MCP over stdio, so the same server works with every MCP-compatible client. Below is the JSON config for Claude Desktop and Cherry Studio.
Claude Desktop / Cherry Studio (JSON config)
Add an mcpServers entry to your client's config file (claude_desktop_config.json
for Claude Desktop; the equivalent settings panel for Cherry Studio).
Installed via uv tool / pip / pipx (the symkit-mcp command is on PATH):
{
"mcpServers": {
"symkit": {
"command": "symkit-mcp",
"args": []
}
}
}Run on the fly without installing (uvx pulls and caches the latest release):
{
"mcpServers": {
"symkit": {
"command": "uvx",
"args": ["symkit-mcp"]
}
}
}Running from a local source checkout (no install needed):
{
"mcpServers": {
"symkit": {
"command": "uv",
"args": [
"run",
"--no-sync",
"--directory",
"<your-local-symkit-mcp-path>",
"python",
"-m",
"symkit_mcp.server"
]
}
}
}Replace <your-local-symkit-mcp-path> with the absolute path to your local
symkit-mcp clone. --no-sync skips dependency resolution on every launch;
run uv sync manually when dependencies change.
Windows PATH gotcha: if Claude Desktop fails to launch the server with a "command not found" error, the app's process PATH may not include your
Scripts/or uv tool directory. Switch thecommandto an absolute path, e.g."C:/Users/you/AppData/Local/uv/tools/symkit-mcp/Scripts/symkit-mcp.exe".
🏗️ Clean architecture, built to extend
symkit-mcp/
├── src/
│ ├── symkit/ # Pure domain logic (no MCP dependency)
│ │ ├── domain/ # Entities, value objects, derivation engine
│ │ ├── application/ # Use cases
│ │ └── infrastructure/ # SymPy engine, adapters, persistence
│ └── symkit_mcp/ # MCP server layer
│ ├── server.py
│ └── tools/ # 41 MCP tools
├── formulas/ # Seed formula library (source tree)
├── tests/ # 295 tests
└── pyproject.tomlDomain-driven design — core logic is independent of MCP and SymPy.
Pluggable engines — swap the symbolic engine or verifier via protocols.
File-based persistence — formulas and sessions live in readable Markdown/YAML/JSON.
🧪 Development
# Run the full test suite
uv run pytest
# Lint and type check
uv run ruff check src/ tests/
uv run mypy src/
# Start the dev server
uv run symkit-mcp📖 Learn more
Architecture — DDD layering and responsibilities
SymKit Design — In-depth technical design (English)
SymKit Design (中文) — 中文设计文档
SymKit vs SymPy-MCP — Capability comparison
Roadmap — What's coming next
🙏 Acknowledgments
SymKit is built on the foundation of nsforge-mcp, which pioneered the neurosymbolic formula-derivation approach. The original Chinese README of nsforge-mcp can be found here.
SymKit works alongside sympy-mcp, which provides the underlying SymPy-based symbolic computation and base formula lookup that SymKit builds upon.
📄 License
Apache 2.0 — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceMCP server for step-by-step mathematical reasoning and planning, enabling AI agents to execute calculations and perform GUI actions like opening PowerPoint.Last updated1Apache 2.0
- AlicenseAqualityBmaintenanceA symbolic mathematics MCP server supporting calculus, linear algebra, number theory, statistics, and unit conversion via natural language.Last updated8MIT
- AlicenseCqualityDmaintenanceA universal mathematics MCP server that gives LLM clients full access to SageMath for symbolic calculus, number theory, linear algebra, and more, with persistent state across tool calls.Last updated339MIT
- AlicenseAqualityDmaintenanceMCP server that gives small LLMs verified symbolic-math & logic tools.Last updated62Apache 2.0
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Shared, peer-validated knowledge archive for AI agents — search, contribute, and validate via MCP
Read-only MCP over an agentic SLR workspace with per-claim citation verification
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LBurny/symkit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server