MCP Server for QWED Verification — Bring deterministic verification to Claude Desktop, VS Code, and any MCP-compatible AI assistant.
📚 Full Documentation: docs.qwedai.com/mcp
⚡ Quick Install
pip install qwed-mcp
🚀 Setup with Claude Desktop
Step 1: Find your config file
| OS | Path |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Step 2: Add QWED-MCP
macOS/Linux:
{
"mcpServers": {
"qwed-verification": {
"command": "qwed-mcp"
}
}
}
Windows (use python -m):
{
"mcpServers": {
"qwed-verification": {
"command": "python",
"args": ["-m", "qwed_mcp.server"]
}
}
}
Step 3: Restart Claude Desktop
Quit completely (system tray → Quit) and reopen.
Step 4: Test it!
Ask Claude:
"Write a python script that verifies a 10,000 investment at 7.5% for 5 years using the
qwed_newmath engine, and run it usingexecute_python_code."
⚠️ Migration Note: Deprecation of verify_* Tools
To solve "context bloat" and align with the new MCP standard (RFC-9728), all 1:1 functional tools (e.g., verify_math, verify_sql, verify_code) have been removed as of v0.2.1.
They have been replaced with a single, highly capable tool:
👉 execute_python_code
Before:
"Use
verify_mathto check this formula." (Claude loads 14 different tool schemas into context)
After:
"Use
execute_python_codeto write and run a script that importsqwed_new.engines.math_engineto verify..." (Claude loads 1 tool schema into context)
If you see an "Unknown tool" error, it means Claude is trying to use a legacy tool. Simply tell Claude: "The verify_* tools are removed. Use execute_python_code to natively write and run a Python verification script."
🔧 Available Tools
| Tool | Description | Use Case |
|---|---|---|
execute_python_code |
Subprocess Execution | The single entrypoint for all QWED capabilities. Executes dynamically generated Python code in a subprocess with restricted environment variables. Note: Runs with server privileges; ensure inputs are trusted. |
💡 Example Prompts for Claude
Note: Claude already knows how to use QWED natively via standard Python imports.
Financial Calculations
A bank says: "Invest $10,000 at 7.5% compounded quarterly for 5 years = $14,356.29"
Please write a short Python script using the standard compound interest formula to verify this, and run it with execute_python_code.
Loan EMI Verification
Verify: ₹10,00,000 loan at 9% for 5 years = EMI of ₹20,758
Write a python script importing necessary tools to verify this EMI calculation, and execute it using execute_python_code.
Complex Reasoning Workflows (The Power of Python)
Read the user terms in the attached document.
1. Use execute_python_code to extract and verify the legal clauses using qwed_legal.
2. In the same script, verify if the referenced financial penalties align with the allowed boundaries.
🏗️ How It Works
┌───────────────────────────────────────────┐
│ Claude Desktop / VS Code │
│ (MCP Client) │
└─────────────────┬─────────────────────────┘
│ MCP Protocol (JSON-RPC)
▼
┌───────────────────────────────────────────┐
│ QWED-MCP Server │
├───────────────────────────────────────────┤
│ execute_python_code() │
│ └─► Subprocess Execution (Restricted Env)│
│ └─► Native QWED library execution │
└───────────────────────────────────────────┘
🎯 Why QWED-MCP?
Note: Subprocess execution provides answers/checks purely based on what QWED SDK methods are invoked inside the executed scripts. Execution itself does not guarantee injection detection without specific SDK calls.
| Without QWED-MCP | With QWED-MCP |
|---|---|
| LLM calculates → 95% correct | Executes Python script calling qwed_finance → 100% correct |
| LLM writes SQL → might inject | Script uses qwed_new analyzer → injection detected |
| LLM reasons → might be wrong | Z3 solver executed via SDK → formally proven |
| LLM codes → might be unsafe | AST check script executed → security checked |
💡 What QWED-MCP Is (and Isn't)
✅ QWED-MCP IS:
- MCP Server that adds verification tools to Claude Desktop and VS Code
- Deterministic — uses SymPy (math), Z3 (logic), AST (code) for exact verification
- Open source — works with any MCP-compatible AI assistant
- A safety layer — catches LLM hallucinations in real-time
❌ QWED-MCP is NOT:
A replacement for Claude— it enhances Claude with verification toolsA chatbot— it's a backend server that Claude callsInternet-connected— all verification happens locallyA fine-tuned model— uses symbolic engines, not ML
Think of QWED-MCP as giving Claude a "calculator" for math and a "theorem prover" for logic.
Claude reasons. QWED-MCP verifies.
🆚 How We're Different from Other MCP Servers
| Aspect | Other MCP Servers | QWED-MCP |
|---|---|---|
| Purpose | Connect to APIs, databases, files | Verify LLM outputs |
| Approach | Fetch external data | Compute deterministic proofs |
| Engines | API wrappers | SymPy, Z3, AST analyzers |
| Accuracy | Depends on data source | 100% mathematically proven |
| Offline | Often need internet | Fully local, no APIs |
With Claude Desktop
┌───────────────────┐ ┌───────────────────────┐ ┌───────────────────┐
│ Claude │ │ QWED-MCP │ │ Verified Answer │
│ "What's d/dx x³?" │ ──► │ execute_python_code() │ ──► │ "3x²" ✓ │
│ "Write script to │ │ Runs SymPy natively │ │ (STDOUT Captured) │
│ check." │ └───────────────────────┘ └───────────────────┘
└───────────────────┘
🔒 Security & Privacy
All verification happens locally. Nothing is sent to external servers.
| Concern | QWED-MCP Approach |
|---|---|
| Data Transmission | ❌ No external API calls |
| Storage | ❌ Nothing logged or stored |
| Dependencies | ✅ Local engines (SymPy, Z3) |
| Code Analysis | ✅ Your code never leaves your machine |
Perfect for:
- Enterprises with strict security policies
- Air-gapped development environments
- Sensitive code review workflows
❓ FAQ
Is QWED-MCP free?
Yes! Open source under Apache 2.0. Use it commercially, modify it, distribute it.
Does it work with VS Code Copilot?
QWED-MCP works with any MCP-compatible client. VS Code with Claude extension supports MCP, so yes!
Do I need an API key?
No. QWED-MCP runs entirely locally. No API keys, no cloud calls.
What's the difference between this and QWED-Core?
QWED-Core is the Python library. QWED-MCP wraps it as an MCP server so Claude can use it as a tool.
Can I add my own verification tools?
Yes! The server is extensible. Fork it and add your custom @mcp.tool() functions.
🗺️ Roadmap
✅ Released (v0.2.2)
- Context bloat resolution (RFC-9728 compatibility)
- Unified
execute_python_codeenvironment - Secure process isolation (env-restricted) and robust timeouts
- Claude Desktop integration
- Windows/macOS/Linux support
- Hardened math sandbox: AST allowlist for expression evaluation (GHSA-2p69-jpm6-jrxh)
🚧 In Progress
-
verify_json— JSON Schema validation tool -
verify_finance— NPV/IRR/amortization tool - Cursor IDE integration guide
🔮 Planned
-
verify_legal— Deadline and liability verification -
verify_statistics— Hypothesis test validation - SSE (Server-Sent Events) transport for web UIs
- TypeScript implementation
📁 Examples
See the examples/ folder for:
- Python client usage
- Sample verification scripts
- Integration examples
🛠️ Development
# Clone
git clone https://github.com/QWED-AI/qwed-mcp.git
cd qwed-mcp
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Format code
black src/
📖 Documentation
| Resource | Link |
|---|---|
| Full Docs | docs.qwedai.com/mcp |
| Tools Reference | docs.qwedai.com/mcp/tools |
| Examples | docs.qwedai.com/mcp/examples |
| Troubleshooting | docs.qwedai.com/mcp/troubleshooting |
| MCP Protocol | modelcontextprotocol.io |
🔗 Related Projects
- QWED Core — github.com/QWED-AI/qwed-verification
- QWED-UCP — github.com/QWED-AI/qwed-ucp
- QWED Open Responses — github.com/QWED-AI/qwed-open-responses
📄 License
Apache 2.0 — See LICENSE
Built by QWED AI
Making AI outputs trustworthy through formal verification
Metadata
Release files for qwed-mcp 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qwed_mcp-0.2.2.tar.gz | 48.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qwed_mcp-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 87.9 kB
Release files / qwed_mcp-0.2.2.tar.gz
| Download URL | qwed_mcp-0.2.2.tar.gz |
|---|---|
| Size | 48.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
701dbe151c704700588e43eb05bf4b82999077e18bae318ebb9e87d7127ab9c1
|
|
BLAKE2b-256 checksum How to use checksums |
4c3f5aa35e86e5c4a5118f07afa22130e890215538c2f79d955a32bde0723e11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency logRelease files / qwed_mcp-0.2.2-py3-none-any.whl
| Download URL | qwed_mcp-0.2.2-py3-none-any.whl |
|---|---|
| Size | 39.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00840e261807b8f81676db2e9761661e661a8049fd94273d26b7666bc7ac596c
|
|
BLAKE2b-256 checksum How to use checksums |
558481d80151a7b06567a7b1fc71216a2bd2e392d587b9b2dd0096e540d89101
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.
Transparency log