Skip to main content
Glama

YodMCP — 에이전트 운영 체제

CI Version Python License MCP

YodMCP는 MCP 기반의 프로덕션 지향 에이전트 운영 체제 커널입니다: 다중 그래프 메모리, 작업, 스킬, A2A, 증명(소프트웨어/시뮬레이션 TEE), OpenTelemetry, 그리고 플랜 기반 수익화를 제공합니다.

이 README는 이 파일과 소스 트리만 가지고 시니어 엔지니어가 모든 표면을 설치, 배포, 기능 테스트 및 종단 간 검증할 수 있도록 작성되었습니다.

패키지 표면

표면

명령어

기본값

목적

MCP

yodmcp

stdio

로컬 MCP 클라이언트 (Cursor, Claude Desktop 등)

MCP HTTP

yodmcp --http --port 8000

:8000/mcp

원격 / 스트리밍 가능 HTTP MCP

API

yodmcp-api --port 8080

:8080

REST 상태, 메모리, 감사, 스킬, 결제

A2A

yodmcp-a2a --port 9000

:9000

에이전트 카드, 메시지, 작업

SDK

from yodmcp.sdk import YodClient

HTTP 클라이언트

API용 경량 클라이언트

스킬

skills:// + skills/*/SKILL.md

자동 로드

MCP 리소스로서의 에이전트 스킬

검증

pytest + scripts/verify_e2e.py

CI

서브스트레이트 + 내구성 + TEE 모드

Related MCP server: Agentic Control Framework (ACF)

요구 사항

  • Python 3.11 또는 3.12 (3.10+ 선언됨; CI는 3.11/3.12 커버)

  • 선택 사항: 멀티 서비스 구성을 위한 Docker

설치

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

환경 기본값 복사:

cp .env.example .env

변수

기본값

의미

YODMCP_MEMORY_BACKEND

memory

memory | sqlite | durable

YODMCP_MEMORY_DB

./data/yodmcp_memory.db

내구성 모드 사용 시 SQLite 경로

YODMCP_ATTEST_MODE

software

software | simulated_tee | nitro | sgx

YODMCP_PLAN

free

free | pro | enterprise

YODMCP_TENANT_ID

default

소프트 할당량 테넌트 키

YODMCP_SKILLS_DIR

(자동)

스킬 루트 재정의

STRIPE_SECRET_KEY

설정 안 됨

실시간 Checkout 세션 활성화

TEE 정직성: nitro / sgx는 공급자 훅입니다. 실제 TEE 라이브러리가 없으면 시뮬레이션된 클레임으로 대체됩니다. 로컬 검증에는 software 또는 simulated_tee를 권장합니다.

빠른 시작 (로컬)

# 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 클라이언트 설정 (stdio)

Cursor — 프로젝트 .cursor/mcp.json 또는 전역 MCP 설정:

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

yodmcpPATH에 없으면 모듈 형식을 사용하세요:

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

Claude Desktopclaude_desktop_config.jsonmcpServers 아래 동일한 구조.

스트리밍 가능 HTTP MCP (URL 전송을 지원하는 원격 클라이언트):

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

단일 API 컨테이너:

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

종단 간 검증 (외부 계정 불필요)

# 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

예상 결과: 모든 테스트 통과; 스크립트가 ALL E2E CHECKS PASSED 출력.

API 스모크 테스트 (yodmcp-api 실행 중):

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 도구 (카탈로그)

도구

설명

memory_write

다중 그래프 계층 메모리에 저장

memory_read

임베딩 유사도로 검색

memory_consolidate

중요도 높은 에피소드를 의미론적 메모리로 승격

memory_stats

노드/엣지 개수

tasks_create / tasks_get / tasks_cancel / tasks_stats

내구성 있는 비동기 작업 핸들

skills_list

에이전트 스킬 목록 (+ 리소스 URI)

a2a_card

A2A 에이전트 카드 JSON

plan_cache_get / plan_cache_put

의미론적 플랜 캐시

cache_stats

캐시 통계

attestation_recent

최근 TRACE 스타일 클레임

audit_recent

최근 정책/감사 이벤트

discover_capabilities

도구 및 스킬의 점진적 발견

echo

연결성 프로브

리소스:

  • skills://{name} — 스킬 마크다운 본문

  • yodmcp://agent-card — 에이전트 카드 JSON

스킬

내장 스킬은 항상 등록됩니다. 디스크 스킬skills/*/SKILL.md 아래에서 자동으로 로드됩니다 (YODMCP_SKILLS_DIR로 재정의 가능). 저장소 제공 스킬:

  • memory-hygiene, safe-tool-use, funding-usdc, repo-bootstrap

  • 내장 long-horizon-planning

수익화

플랜

$/월

일일 도구 호출

내구성

TEE

Free

0

500

Pro

49

50k

시뮬레이션

Enterprise

499

무제한

Nitro/SGX 훅

  • 도구 게이트를 통한 소프트 할당량; 소진 시 업그레이드 메시지

  • STRIPE_SECRET_KEY 설정 시 실시간 Stripe Checkout; 그 외에는 status: payment_link 반환

비수탁형 USDC (에이전트 선호)

네트워크

주소

Base

0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438

Ethereum

0xD3d0E9eDAe3Ac7bb199a8EAA761BdA423b878438

Solana

ETQwWf19axArsY493UfC6bxe2BmEzmzvCb58PPnC38A

정식: funding/addresses.json

프로젝트 구조

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

알려진 제한 사항 (프로덕션 사용 전 확인)

  1. 플랜 캐시는 경량 임베딩을 사용합니다. 기본 유사도 임계값은 0.68입니다 (프로덕션 벡터 검색 아님).

  2. TEE Nitro/SGX는 실제 공급자를 연결하지 않으면 시뮬레이션 폴백이 있는 훅입니다.

  3. 프론트엔드 src/yodmcp/frontend/dashboard.py는 여전히 레거시 core.runtime을 사용하며 주요 제어판이 아닙니다 — yodmcp-api + MCP 도구를 사용하세요.

  4. 할당량은 소프트(프로세스 내 미터)이며 분산형 결제 원장이 아닙니다.

  5. 프로세스는 인메모리 상태를 공유하지 않습니다. 다중 프로세스 내구성을 위해 sqlite 백엔드 + 공유 볼륨을 사용하세요.

라이선스

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

Install Server
A
license - permissive license
C
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/ANAMIZED/YodMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server