콘텐츠로 이동

외부 MCP 클라이언트를 Griptape Nodes에 연결하기

Griptape Nodes는 외부 에이전트(Claude Desktop, Claude Code, Cursor, VS Code 등)가 엔진을 직접 제어할 수 있도록 자체 MCP 서버를 실행합니다. 이 페이지는 본 섹션의 다른 내용과 반대 방향입니다. Griptape Nodes가 외부 MCP 서버를 사용하는 대신, 여기서는 Griptape Nodes 자체를 MCP 서버로 외부에 노출합니다.

URL

기본적으로 엔진은 다음 주소에서 수신 대기합니다:

http://localhost:8125/mcp/

전송 프로토콜은 Streamable HTTP입니다. 끝에 슬래시(/)를 붙이는 것을 권장하며, 슬래시를 생략하는 클라이언트를 위해 서버가 자동으로 /mcp를 /mcp/로 리디렉션합니다.

엔진이 시작되면 실제 바인딩된 주소가 다음과 같이 로그에 기록됩니다:

INFO MCP server listening at http://127.0.0.1:8125/mcp/

환경 변수 재정의 (Overrides)

호스트와 포트는 다음 환경 변수를 통해 제어할 수 있습니다:

변수 기본값 설명
GTN_MCP_SERVER_HOST localhost 바인딩할 인터페이스. 명시적으로 지정하려면 127.0.0.1을, LAN 연결을 허용하려면 0.0.0.0을 사용하세요.
GTN_MCP_SERVER_PORT 8125 TCP 포트. 0으로 설정하면 OS가 사용 가능한 포트를 임의로 할당합니다.
GTN_MCP_SERVER_LOG_LEVEL ERROR MCP 서버의 uvicorn 로그 레벨입니다.

구성된 포트가 이미 사용 중인 경우 엔진은 OS가 할당한 포트로 대체합니다. 실제 URL은 시작 로그를 확인하세요.

기본적으로 로컬 전용 (Local-only by default)

엔진은 localhost에 바인딩되므로 동일한 머신에 있는 프로세스만 접근할 수 있습니다. MCP 서버에는 별도의 인증 절차가 없습니다. 접근 가능한 모든 대상을 완전히 신뢰할 수 있는 경우가 아니라면 0.0.0.0에 바인딩하거나 네트워크에 포트를 노출하지 마세요.

클라이언트 구성

Claude Code

~/.claude.json에 추가하거나 claude mcp add 명령을 사용하세요:

{
  "mcpServers": {
    "griptape-nodes": {
      "type": "streamable-http",
      "url": "http://localhost:8125/mcp/"
    }
  }
}

Cursor

전역 접근을 위해 ~/.cursor/mcp.json을 생성하거나 작업 공간에 .cursor/mcp.json을 생성하세요:

{
  "mcpServers": {
    "griptape-nodes": {
      "url": "http://localhost:8125/mcp/"
    }
  }
}

VS Code

작업 공간에 .vscode/mcp.json을 생성하거나, MCP: Open User Configuration을 통해 사용자 구성 파일을 엽니다:

{
  "servers": {
    "griptape-nodes": {
      "type": "http",
      "url": "http://localhost:8125/mcp/"
    }
  }
}

VS Code는 (mcpServers 대신) servers를 사용하고 "type": "http"를 지정해야 한다는 점에 유의하세요.

Claude Desktop

Claude Desktop의 claude_desktop_config.json은 stdio 서버만 지원합니다. 원격/HTTP MCP 서버에 연결하려면 다음 방법 중 하나를 사용하세요:

  • 앱 내에서 Settings → Connectors → Add custom connector를 사용하고 http://localhost:8125/mcp/를 붙여넣거나,
  • 구성 파일에서 mcp-remote로 URL을 래핑합니다:
{
  "mcpServers": {
    "griptape-nodes": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:8125/mcp/"]
    }
  }
}

연결 확인하기

가장 간단한 비대화형 확인 방법은 MCP Inspector CLI를 사용하는 것입니다. 엔진이 Streamable HTTP를 사용하므로 --transport http 플래그를 전달하세요:

npx -y @modelcontextprotocol/inspector --cli http://localhost:8125/mcp/   --transport http --method tools/list

--transport http를 지정하지 않으면 inspector가 기본적으로 SSE를 사용하며 SSE error: Non-200 status code (400) 에러가 발생합니다. 이는 엔진이 유효한 MCP 세션 없이 들어오는 SSE 스타일의 GET 요청을 거부하기 때문입니다.

Inspector는 브라우저 UI도 제공합니다:

npx -y @modelcontextprotocol/inspector

URL 필드에 http://localhost:8125/mcp/를 붙여넣고 전송 방식으로 Streamable HTTP를 선택합니다. 연결이 TypeError: NetworkError when attempting to fetch resource 오류로 실패하는 경우 대부분 CORS 문제입니다. 엔진의 MCP 서버는 현재 Access-Control-Allow-Origin 헤더를 내보내지 않으므로 브라우저의 교차 출처(cross-origin) 요청이 차단됩니다. 브라우저 대신 위의 CLI 명령을 사용하거나 브라우저 보안 설정을 완화한 상태로 inspector를 실행하세요.

파라미터 값 (Parameter values)

파라미터 값과 플로우 변수 값은 일반 JSON으로 전달됩니다. JSON에 없는 형식의 값은 가장 가까운 JSON 형태로 전달됩니다. 튜플과 집합은 리스트로, 열거형(enum)은 해당 값으로, 경로는 텍스트로, 아티팩트 및 기타 객체는 필드로 전달됩니다:

{"type": "ImageUrlArtifact", "value": "https://example.com/cat.png"}

값을 다시 보낼 때도 일반 JSON으로 보냅니다. 두 종류의 딕셔너리는 감싸진 형태로 전달되며, 받은 형태 그대로 되돌려 보내야 합니다. 자체 "$type" 키를 가진 딕셔너리는 그 키가 타입으로 읽히지 않도록 감싸집니다. 키를 텍스트로 변환하면 충돌하는 딕셔너리(예: 1과 "1")는 항목이 하나도 손실되지 않도록 키-값 쌍으로 전달됩니다:

{"$type": "builtins:dict", "$value": {"$type": "app.bsky.feed.post", "text": "hi"}}
{"$type": "builtins:dict", "$value": [[1, "a"], ["1", "b"]]}

열린 파일처럼 JSON으로 작성할 수 없는 값은 표시용 필드에 한해 Python str() 결과로 전달됩니다. 예: "<_io.TextIOWrapper name='notes.txt' mode='r' encoding='UTF-8'>". 그 외의 위치에서 결과를 보낼 수 없으면 요청은 해당 값의 이름을 밝히는 실패 메시지와 함께 실패합니다.

워크플로우 구축 스킬 (Skill) 설치하기

엔진에는 에이전트에게 위에 설명된 MCP 도구 사용법(콜드 스타트 레시피, EventRequestBatch, 일반적인 주의점 등)을 안내하는 griptape-nodes-workflows 스킬이 포함되어 있습니다. Claude Code, Cursor, VS Code는 agentskills.io의 name + description 프론트매터 규칙을 따르는 스킬을 기본적으로 로드하므로, 디렉터리에 파일을 배치하기만 하면 설치됩니다.

게시된 마크다운 주소:

https://docs.griptapenodes.com/en/stable/skills/griptape-nodes-workflows/SKILL/index.md

어떤 범위를 선택하든 디렉터리 이름은 반드시 griptape-nodes-workflows여야 하고(프론트매터의 name 필드와 일치해야 함), 파일 이름은 반드시 SKILL.md여야 합니다.

클라이언트별 설치 경로

클라이언트 프로젝트 범위 사용자 범위
Claude Code .claude/skills/griptape-nodes-workflows/SKILL.md ~/.claude/skills/griptape-nodes-workflows/SKILL.md
Cursor .cursor/skills/griptape-nodes-workflows/SKILL.md ~/.cursor/skills/griptape-nodes-workflows/SKILL.md
VS Code (Copilot) .github/skills/griptape-nodes-workflows/SKILL.md ~/.copilot/skills/griptape-nodes-workflows/SKILL.md

Cursor와 VS Code는 .agents/skills/(프로젝트) 및 ~/.agents/skills/(사용자) 경로도 인식하며, VS Code는 추가로 .claude/skills/ / ~/.claude/skills/도 인식합니다. 여러 클라이언트가 하나의 폴더를 공유하도록 하려면 ~/.agents/skills/griptape-nodes-workflows/SKILL.md 위치에 스킬을 배치하세요.

단일 명령어로 설치하기

위 표에 따라 DEST 경로를 조정한 후 실행하세요:

DEST="$HOME/.claude/skills/griptape-nodes-workflows"
mkdir -p "$DEST"   && curl -fsSL https://docs.griptapenodes.com/en/stable/skills/griptape-nodes-workflows/SKILL/index.md        -o "$DEST/SKILL.md"

채팅창에서 /skills를 입력(Claude Code 또는 VS Code)하거나 사용자 지정 메뉴의 Skills 탭을 열어(Cursor) 정상적으로 로드되었는지 확인하세요.