Back to Browse

Yod MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

Autonomous MCP Agent OS: multi-graph memory, Tasks, Skills, A2A, attestation, OpenTelemetry.

About

Autonomous MCP Agent OS: multi-graph memory, Tasks, Skills, A2A, attestation, OpenTelemetry.

Security Report

4.2
Use Caution4.2High Risk

YodMCP is a well-structured Agent Operating System MCP server with reasonable security foundations. Authentication and authorization mechanisms are present and configurable. However, several moderate-severity issues were identified: Stripe API keys are exposed in error responses, the Stripe webhook handler accepts unsigned events in development mode without clear warnings, and there is potential for sensitive data logging. Permissions are appropriate for the server's purpose (multi-tenant agent OS with API access, memory storage, and task management). Supply chain analysis found 6 known vulnerabilities in dependencies (0 critical, 3 high severity).

7 files analyzed · 14 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

database

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-anamized-yodmcp": {
      "args": [
        "yodmcp"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub 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

SurfaceCommandDefaultPurpose
MCPyodmcpstdioLocal MCP clients (Cursor, Claude Desktop, etc.)
MCP HTTPyodmcp --http --port 8000:8000/mcpRemote / Streamable HTTP MCP
APIyodmcp-api --port 8080:8080REST health, memory, audit, skills, billing
A2Ayodmcp-a2a --port 9000:9000Agent Card, message, tasks
SDKfrom yodmcp.sdk import YodClientHTTP clientThin client for the API
Skillsskills:// + skills/*/SKILL.mdauto-loadedAgent Skills as MCP resources
Verifypytest + scripts/verify_e2e.pyCISubstrate + 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
VariableDefaultMeaning
YODMCP_MEMORY_BACKENDmemorymemory | sqlite | durable
YODMCP_MEMORY_DB./data/yodmcp_memory.dbSQLite path when durable
YODMCP_ATTEST_MODEsoftwaresoftware | simulated_tee | nitro | sgx
YODMCP_PLANfreefree | pro | enterprise
YODMCP_TENANT_IDdefaultSoft quota tenant key
YODMCP_SKILLS_DIR(auto)Override skills root
STRIPE_SECRET_KEYunsetEnables 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)

ToolDescription
memory_writePersist into multi-graph hierarchical memory
memory_readRetrieve with embedding similarity
memory_consolidatePromote high-importance episodic to semantic
memory_statsNode/edge counts
tasks_create / tasks_get / tasks_cancel / tasks_statsDurable async task handles
skills_listList Agent Skills (+ resource URIs)
a2a_cardA2A Agent Card JSON
plan_cache_get / plan_cache_putSemantic plan cache
cache_statsCache statistics
attestation_recentRecent TRACE-style claims
audit_recentRecent policy/audit events
discover_capabilitiesProgressive discovery of tools + skills
echoConnectivity 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$/moTool calls/dayDurableTEE
Free0500
Pro4950kyessimulated
Enterprise499unlimitedyesNitro/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

Non-custodial USDC (preferred for agents)

NetworkAddress
Base0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438
Ethereum0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438
SolanaETQwWf19axArsY493UfC6bxe2BmEzmzvCb58PPnC38A

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

Reviews

No reviews yet

Be the first to review this server!