YodMCP

YodMCP

A production-oriented Agent Operating System kernel that provides multi-graph memory, durable tasks, portable skills, attestation, and plan-based monetization for MCP-based agents.

Category
Visit Server

README

YodMCP — Agent Operating System

CI Version Python License MCP

YodMCP is a production-oriented Agent Operating System kernel on MCP: multi-graph memory, Tasks, Skills, A2A, attestation (software / simulated TEE), OpenTelemetry, and plan-based monetization.

This README is written so a senior engineer with only this file + the source tree can install, deploy every surface, exercise features, and verify end-to-end.

Package surfaces

Surface Command Default Purpose
MCP yodmcp stdio Local MCP clients (Cursor, Claude Desktop, etc.)
MCP HTTP yodmcp --http --port 8000 :8000/mcp Remote / Streamable HTTP MCP
API yodmcp-api --port 8080 :8080 REST health, memory, audit, skills, billing
A2A yodmcp-a2a --port 9000 :9000 Agent Card, message, tasks
SDK from yodmcp.sdk import YodClient HTTP client Thin client for the API
Skills skills:// + skills/*/SKILL.md auto-loaded Agent Skills as MCP resources
Verify pytest + scripts/verify_e2e.py CI Substrate + durable + TEE modes

Requirements

  • Python 3.11 or 3.12 (3.10+ declared; CI covers 3.11/3.12)
  • Optional: Docker for multi-service compose

Install

git clone https://github.com/ANAMIZED/YodMCP.git
cd YodMCP
python -m venv .venv && source .venv/bin/activate   # recommended
pip install -e ".[dev]"

Copy environment defaults:

cp .env.example .env
Variable Default Meaning
YODMCP_MEMORY_BACKEND memory memory | sqlite | durable
YODMCP_MEMORY_DB ./data/yodmcp_memory.db SQLite path when durable
YODMCP_ATTEST_MODE software software | simulated_tee | nitro | sgx
YODMCP_PLAN free free | pro | enterprise
YODMCP_TENANT_ID default Soft quota tenant key
YODMCP_SKILLS_DIR (auto) Override skills root
STRIPE_SECRET_KEY unset Enables live Checkout Sessions

TEE honesty: nitro / sgx are provider hooks; without real TEE libraries they fall back to simulated claims. Prefer software or simulated_tee for local verify.

Quick start (local)

# 1) MCP over stdio (attach from an MCP client)
yodmcp

# 2) REST API
yodmcp-api --port 8080
# curl http://127.0.0.1:8080/health

# 3) A2A
yodmcp-a2a --port 9000
# curl http://127.0.0.1:9000/a2a/card

MCP client configuration (stdio)

Cursor — project .cursor/mcp.json or global MCP settings:

{
  "mcpServers": {
    "yodmcp": {
      "command": "yodmcp",
      "args": [],
      "env": {
        "YODMCP_MEMORY_BACKEND": "memory",
        "YODMCP_PLAN": "free",
        "YODMCP_ATTEST_MODE": "software"
      }
    }
  }
}

If yodmcp is not on PATH, use the module form:

{
  "mcpServers": {
    "yodmcp": {
      "command": "python",
      "args": ["-m", "yodmcp"],
      "cwd": "/absolute/path/to/YodMCP",
      "env": {
        "PYTHONPATH": "src",
        "YODMCP_MEMORY_BACKEND": "memory"
      }
    }
  }
}

Claude Desktop — same shape under mcpServers in claude_desktop_config.json.

Streamable HTTP MCP (remote clients that support URL transport):

yodmcp --http --host 0.0.0.0 --port 8000
# endpoint: http://127.0.0.1:8000/mcp

Docker

docker compose up --build
# API  :8080  A2A :9000  MCP HTTP :8000

Single API container:

docker build -t yodmcp .
docker run --rm -p 8080:8080 -e YODMCP_PLAN=free yodmcp

Verify end-to-end (no external accounts required)

# Unit + integration
YODMCP_MEMORY_BACKEND=memory YODMCP_ATTEST_MODE=software \
  PYTHONPATH=src pytest tests/ -v

# Durable SQLite + simulated TEE
YODMCP_MEMORY_BACKEND=sqlite YODMCP_MEMORY_DB=/tmp/yodmcp.db \
  YODMCP_ATTEST_MODE=simulated_tee \
  PYTHONPATH=src pytest tests/ -v

# Exhaustive substrate script
PYTHONPATH=src python scripts/verify_e2e.py

Expected: all tests green; script prints ALL E2E CHECKS PASSED.

API smoke (with yodmcp-api running):

curl -s http://127.0.0.1:8080/health
curl -s http://127.0.0.1:8080/api/skills
curl -s http://127.0.0.1:8080/api/billing/plans
curl -s http://127.0.0.1:8080/api/billing/status

SDK:

python examples/sdk_quickstart.py   # requires API on :8080

MCP tools (catalog)

Tool Description
memory_write Persist into multi-graph hierarchical memory
memory_read Retrieve with embedding similarity
memory_consolidate Promote high-importance episodic to semantic
memory_stats Node/edge counts
tasks_create / tasks_get / tasks_cancel / tasks_stats Durable async task handles
skills_list List Agent Skills (+ resource URIs)
a2a_card A2A Agent Card JSON
plan_cache_get / plan_cache_put Semantic plan cache
cache_stats Cache statistics
attestation_recent Recent TRACE-style claims
audit_recent Recent policy/audit events
discover_capabilities Progressive discovery of tools + skills
echo Connectivity probe

Resources:

  • skills://{name} — skill markdown body
  • yodmcp://agent-card — agent card JSON

Skills

Built-in skills are always registered. Disk skills under skills/*/SKILL.md are loaded automatically (override via YODMCP_SKILLS_DIR). Repo ships:

  • memory-hygiene, safe-tool-use, funding-usdc, repo-bootstrap
  • Plus built-in long-horizon-planning

Monetization

Plan $/mo Tool calls/day Durable TEE
Free 0 500 — —
Pro 49 50k yes simulated
Enterprise 499 unlimited yes Nitro/SGX hooks
  • Soft quotas via tool gate; upgrade messaging on exhaustion
  • Live Stripe Checkout when STRIPE_SECRET_KEY is set; otherwise checkout returns status: payment_link
Plan Link
Pro https://buy.stripe.com/bJe3cw0kCaLrbVz1AY43S09
Enterprise https://buy.stripe.com/9B68wQ1oGcTz9NrfrO43S0a

Non-custodial USDC (preferred for agents)

Network Address
Base 0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438
Ethereum 0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438
Solana ETQwWf19axArsY493UfC6bxe2BmEzmzvCb58PPnC38A

Canonical: funding/addresses.json

Project layout

src/yodmcp/          # package (src-layout)
  core/              # server, substrate, context
  memory/            # in-memory + durable SQLite multi-graph
  tools/             # MCP tool registration + gate
  tasks/ skills/ cache/ security/ observability/ monetization/
  api/ a2a/ sdk/
skills/*/SKILL.md    # portable Agent Skills (loaded at runtime)
scripts/verify_e2e.py
tests/
docs/ARCHITECTURE.md

Known limitations (read before claiming production)

  1. Plan cache uses lightweight embeddings; default similarity threshold is 0.68 (not production vector search).
  2. TEE Nitro/SGX are hooks with simulated fallback unless you wire real providers.
  3. Frontend src/yodmcp/frontend/dashboard.py still uses legacy core.runtime and is not the primary control plane — use yodmcp-api + MCP tools.
  4. Quotas are soft (in-process meter); not a distributed billing ledger.
  5. Processes do not share in-memory state; use sqlite backend + shared volume for multi-process durability.

License

Apache-2.0 · CONTRIBUTING · CHANGELOG · ARCHITECTURE · AGENTS.md

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured