← /geode/portfolioGEODE . 문서
GitHub
설정
레퍼런스

MCP 서버

core/mcp가 관리하는 MCP 서버. 토큰 가드, 라이프사이클, Apple Calendar, Discord, Slack, Signal 어댑터.

MCP란 무엇인가

Model Context Protocol. 외부 프로세스 서비스로서 LLM에 도구를 노출하는 표준입니다. GEODE는 MCP 서버를 소비하기도 하고, 자기 자신을 MCP 서버로 노출하기도 합니다 (core/mcp_server.py).

매니저

core/mcp/manager.pyMCPManager를 보유합니다. 서버 프로세스를 소유하고 도구 호출을 라우팅하며 가드를 강제합니다. 공개 API.

class MCPManager:
    async def start_server(self, name: str) -> None: ...
    async def stop_server(self, name: str) -> None: ...
    async def call_tool(self, server: str, tool: str, args: dict) -> Any: ...
    async def list_tools(self, server: str) -> list[ToolSpec]: ...

25K 토큰 가드

MCP 도구는 임의로 큰 페이로드를 반환할 수 있습니다 (웹 fetch, 디렉토리 트리, DB 쿼리). 상한이 없으면 도구 호출 한 번이 컨텍스트 윈도를 날려버릴 수 있습니다. GEODE는 모든 MCP 도구 결과에 대해 25,000 토큰의 하드 상한을 강제합니다. 상한 초과 → 서버 측 절단 + 절단 지점을 알려주는 sentinel 마커. 모델이 무엇을 잃었는지 알 수 있도록 합니다.

구현. core/mcp/의 결과 경로 위에 있는 가드 미들웨어. 해당하는 경우 HTML→Markdown 변환이 상한 적용보다 먼저 일어나 절단이 콘텐츠가 아니라 포매팅 노이즈를 제거하게 합니다.

관리되는 서버

대표 목록 (환경별 가용성에 따라 달라질 수 있음).

  • filesystem, git, github
  • web (fetch + search)
  • apple_calendar, composite_calendar (멀티 계정 병합)
  • signal (composite messaging)
  • slack, discord
  • linkedin-reader (브라우저 제어)
  • claude-in-chrome (브라우저 브릿지)
  • playwright
  • context7 (라이브러리 문서)
  • google-drive
  • + 몇 개의 특화 어댑터

예외 계층

core/mcp/base.py:12에 agentic 루프까지 전파되는 실패 타입이 정의되어 있습니다.

  • MCPTimeoutError. 서버가 시간 안에 응답하지 않음
  • MCPConnectionError. 서버가 크래시했거나 시작되지 않음
  • MCPProtocolError. 응답이 잘못된 형식
  • MCPGuardError. 가드가 호출을 거부함 (크기 상한, 인증 등)

GEODE-as-MCP

core/mcp_server.py는 GEODE 자체 도구 (그리고 제한된 형태로 agentic 루프 자체) 를 MCP 서버로 노출합니다. Claude Code, Codex CLI 같은 다른 에이전트가 GEODE를 자신이 호출하는 다른 에이전트와 같은 방식으로 호출할 수 있게 해줍니다.