Skip to main content
Glama

mcpgo

Claude Code MCP를 Claude와 대화로 관리하세요 — 목록 보기, 재시작, 래핑 등.

Claude Code가 작동하는 모든 곳에서 작동하며, /mcp를 사용할 수 없는 Remote Control에서도 작동합니다.

설치

npm install -g @exfil/mcpgo
claude mcp add mcpgo --scope user -- mcpgo

요구 사항: Node.js ≥ 18

Related MCP server: MCP Server Generator

Remote Control

Claude Code의 Remote Control 모드에는 /mcp에 접근할 수 없습니다. 즉, mcpgo가 없다면 원격으로 MCP 서버를 나열하거나, 재시작하거나, 관리할 수 없습니다.

mcpgo 자체가 MCP 서버이기 때문에 Claude Code가 있는 모든 곳에서 사용할 수 있습니다:

"list my mcps"
"restart github"
"check postgres health"

/mcp UI가 필요 없습니다.

기능

안정적인 재시작

Claude Code는 시작 시 생성한 파이프를 통해 stdio MCP 서버에 연결합니다. 서버가 충돌하거나 재시작하려는 경우, Claude Code는 자동 복구 없이 해당 서버를 실패로 표시합니다.

mcpgo는 **래퍼(wrapper)**로 이 문제를 해결합니다: Claude Code와 MCP 사이에 위치하는 장기 실행 프로세스입니다. Claude Code는 래퍼(계속 살아 있음)와 통신하고, 래퍼는 실제 서버를 자식 프로세스로 생성합니다 — 서버가 종료될 때마다 자동으로 다시 생성합니다.

래핑은 선택 사항입니다 — 아무것도 래핑하지 않고 mcpgo를 MCP 목록 보기, 추가, 제거에만 사용할 수 있습니다. 래핑은 /mcp를 건드리지 않고 안정적인 재시작이 필요할 때만 필요합니다.

MCP당 1회 설정:

  1. wrap_mcp_stdio — 구성에서 대상 MCP를 래핑합니다

  2. Claude Code 재시작 (또는 /mcp로 연결 해제 후 재연결)

  3. 완료 — 언제든지 restart_mcp_process 사용

설정 후:

"restart github"     → instant, wrapper auto-respawns the child, Claude Code stays connected
"restart postgres"        → same

래핑을 해제하려면 unwrap_mcp_stdio를 사용하여 원래 구성을 복원하세요.

도구

프로세스 관리

wrap_mcp_stdio

안정적인 재시작을 위해 Claude Code stdio MCP를 래핑합니다.

"wrap github"
"wrap postgres"

unwrap_mcp_stdio

래핑된 MCP를 원래 구성으로 복원합니다.

"unwrap github"
"unwrap postgres"

restart_mcp_process

래핑된 MCP의 자식 프로세스를 재시작합니다 — 래퍼가 자동으로 다시 생성하고, Claude Code는 연결을 유지합니다.

"restart github"
"restart postgres"

check_mcp_health

MCP가 구성되어 있는지, 래핑되었는지, 프로세스가 실행 중인지 확인합니다.

"check github health"
"is postgres running?"

Codex CLI 지원

wrap_codex_mcp_stdio

~/.codex/config.toml의 Codex CLI MCP를 래핑합니다.

"wrap my codex mcp called postgres"

restart_codex_mcp_process

래핑된 Codex CLI MCP를 재시작합니다.

"restart the codex postgres"

구성 관리

list_all_mcps

구성된 모든 MCP 서버를 나열합니다.

"list my mcps"
"what mcps do I have?"

add_mcp

~/.claude.json에 새 MCP 서버를 추가합니다.

"add an mcp called my-tool that runs python server.py"

remove_mcp

MCP 서버를 제거합니다.

"remove the my-tool mcp"

configure_mcp

기존 MCP 서버의 구성 필드를 업데이트합니다.

"change github's command to python3"

get_mcp_details

특정 MCP의 전체 구성 세부 정보를 가져옵니다.

"show me the github config"
"get details for postgres"

래핑 작동 방식

wrap_mcp_stdio "github"를 호출하면 구성 항목이 다음과 같이 변경됩니다:

{ "command": "python", "args": ["server.py"] }

에서:

{
  "command": "node",
  "args": [
    "/path/to/wrapper.js",
    "--name", "github",
    "--pidfile", "...",
    "--env-allowlist", "PATH,Path,PATHEXT,HOME,USERPROFILE,SystemRoot,...",
    "--",
    "python", "server.py"
  ]
}

래퍼는:

  • 원래 명령을 자식 프로세스로 생성

  • 자식의 PID를 pidfile에 기록

  • 종료 시 자동으로 다시 생성 (백오프 포함)

  • Claude Code의 전체 환경을 상속하는 대신, 선별된 환경(PATH, 로케일, 임시, 홈, 그리고 MCP가 선언한 env 키)을 자식에게 전달

  • SIGTERM, SIGINT 또는 stdin EOF에서 깨끗하게 종료

restart_mcp_process는 pidfile을 읽고 자식을 종료합니다. 래퍼가 다시 생성합니다 — Claude Code는 연결 끊김을 감지하지 못합니다.

unwrap_mcp_stdio는 이를 되돌립니다 — -- 이후의 인수에서 원래 명령을 복원하고 pidfile을 제거합니다.

안정적인 래퍼 위치

MCP를 래핑하면 mcpgo는 wrapper.js를 안정적인 사용자 데이터 위치에 복사하고 해당 경로를 ~/.claude.json에 기록합니다. 이는 구성이 npx 캐시 정리와 mcpgo 버전 업그레이드를 견디게 합니다 — 래퍼가 사라지지 않습니다.

  • Windows: %LOCALAPPDATA%\mcpgo\wrapper.js

  • Linux/macOS: ~/.mcpgo/wrapper.js

이미 래핑된 MCP에 wrap_mcp_stdio를 다시 실행하면 래퍼 복사본이 제자리에서 새로 고쳐집니다.

Pidfile 위치

  • Windows: %LOCALAPPDATA%\mcpgo\pids\<name>.pid

  • Linux/macOS: $TMPDIR/mcpgo/pids/<name>.pid

참고 사항

  • 래핑은 Claude Code 재시작(또는 수동 /mcp 연결 해제 + 재연결)이 필요합니다 — Claude Code는 구성을 메모리에 캐시합니다

  • restart_mcp_process는 래핑된 MCP에서 가장 잘 작동합니다. 래핑되지 않은 MCP의 경우 프로세스를 종료하지만 /mcp로 수동으로 다시 연결해야 합니다

  • 요청 중 충돌은 일시적인 프로토콜 불일치를 유발할 수 있습니다. Claude Code는 다음 도구 호출에서 복구합니다

  • 래핑된 MCP는 전체 Claude Code 환경 대신 선별된 환경(PATH, 로케일, 임시, 홈, 그리고 MCP가 선언한 env 키)을 받습니다. 이 기본값을 적용하려면 이전에 래핑된 MCP에 wrap_mcp_stdio를 다시 실행하세요

  • list_all_mcps와 get_mcp_details는 기본적으로 env 값을 숨기므로 도구가 MCP 구성에 저장된 비밀을 유출하는 데 사용될 수 없습니다 — 실제로 볼 필요가 있을 때 show_env_values: true를 전달하세요

Available Tools

11 tools
add_mcpB

Add a new MCP server to the user configuration (~/.claude.json).

ParametersJSON Schema
NameRequiredDescriptionDefault
envNoEnvironment variables to set for the server
urlNoServer URL (required for http/sse transport)
argsNoArguments to pass to the command
commandNoCommand to run (required for stdio transport)
headersNoHTTP headers (for http/sse transport)
mcp_nameYesName for the new MCP server (alphanumeric, dashes, underscores)
transportYesTransport type: stdio for local process, http/sse for remote server
allow_footgun_envNoSet true to override the safety refusal when env sets a code-injection key like NODE_OPTIONS, LD_PRELOAD, PYTHONSTARTUP, BASH_ENV.
allow_footgun_argsNoSet true to override the safety refusal when args include code-injection flags like -e/--eval on node, -c on python/bash, -Command on pwsh, /c on cmd.
allow_shell_metacharactersNoSet true to override the safety refusal when 'command' contains shell metacharacters. Use only for genuinely shell-style commands you trust.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the raw action and destination, omitting critical behaviors such as the safety refusals for footgun flags (env, args, shell metacharacters) that are evident in the schema. It also doesn't mention whether existing configurations are overwritten, permission requirements, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for the simple action it describes, though it omits important details that affect usability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, nested objects, safety refusals, and no output schema, this description is severely incomplete. It doesn't cover return values, error handling, or the footgun override mechanism that an agent must understand to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 10 parameters are already documented with meaningful descriptions. The tool description adds no additional parameter semantics beyond what the schema provides, aligning with the baseline 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (add) and resource (new MCP server) with a specific destination (user configuration). While it distinguishes itself from 'remove_mcp' and 'list_all_mcps', it doesn't explicitly differentiate from 'configure_mcp' (which might modify existing servers), though 'new' implies that distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for creating new servers, but it doesn't explicitly state when to use this over 'configure_mcp' or provide exclusions/prerequisites. No alternative tools are mentioned, leaving usage context implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_mcp_healthA

Check the health of an MCP server — whether it is configured, wrapped, and its process is running.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe name of the MCP server to check

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses what is checked (configured, wrapped, process running), implying a read-only operation, but does not disclose the return value format, error behavior (e.g., what happens if server is absent), or any side effects. There is no contradiction, but the behavior is only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. It is front-loaded with the primary action and enumerates the specific checks, making it efficient and easily parsed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description should explain return values or expected outcomes, which it does not. It also does not cover edge cases like missing servers or what constitutes a healthy vs. unhealthy response. The description is adequate for selecting the tool but not for expecting its output, so completeness is only partial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter 'mcp_name' is already described as 'The name of the MCP server to check.' The description adds no additional semantics beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Check') and a clear resource ('health of an MCP server'), and enumerates three concrete aspects it examines (configured, wrapped, process running). This distinguishes it from sibling tools that list, detail, restart, or wrap servers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings. It does not state, for example, to use it before calling other MCP operations, or to verify if a server is operational, or what to do based on results. The purpose is clear but there is no explicit or implicit usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_mcpC

Update the configuration of an existing MCP server. Merges provided updates into the existing config.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYesFields to update in the MCP server config
mcp_nameYesThe name of the MCP server to configure
allow_footgun_envNoSet true to override the safety refusal when updates.env sets a code-injection key like NODE_OPTIONS, LD_PRELOAD, PYTHONSTARTUP.
allow_footgun_argsNoSet true to override the safety refusal when updates.args include code-injection flags like -e/--eval/-c.
allow_shell_metacharactersNoSet true to override the safety refusal when 'updates.command' contains shell metacharacters.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does mention the merge behavior, which is useful, but it omits critical safety details such as the footgun refusal mechanisms (exposed via allow_footgun_* parameters), the fact that this operation mutates server configuration, and any side effects like requiring a restart. These are not covered by annotations, so the description is significantly under-informing for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the core action ('Update the configuration'), then adds the merge detail. It is appropriately brief with no filler. It could benefit from a usage note, but the existing text is efficient and structured well.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and multiple safety-related parameters, the description is incomplete. It does not explain when a configuration update is needed, the safety refusal behavior, or the relationship with sibling tools like restart_mcp_process. An agent may call this tool without understanding the risks or the merge semantics beyond a surface level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter already has a description. The tool description adds no parameter-specific meaning beyond what the schema provides. The baseline of 3 is appropriate because the description does not introduce any additional context or clarify how the parameters interact (e.g., the purpose of the allow_footgun_* toggles).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action (update configuration) on a specific resource (existing MCP server), and mentions a distinguishing behavior (merging instead of overwriting). It is clearly distinct from siblings like add_mcp or remove_mcp, though it does not name them. The purpose is unambiguous for an agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as add_mcp or restart_mcp_process. It is implied that it modifies existing servers, but there is no explicit context about when a config update is appropriate, whether a restart is needed afterward, or any prerequisites. The agent is left to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mcp_detailsB

Get the full configuration for a specific MCP server by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe name of the MCP server to get details for
show_env_valuesNoIf true, reveal raw 'env' values. Default false (values shown as '***').

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It labels the operation as 'Get', implying read-only, but does not state that it is safe or non-destructive. It also omits important behavioral context: that 'env' values are masked by default and that show_env_values can reveal raw secrets. The schema mentions this, but the description adds nothing beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly worded sentence with no filler. It goes straight to the purpose and does not waste tokens. This is optimal for a simple getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward retrieval tool with no output schema, the description provides the basic intent but leaves gaps. It fails to mention that the result includes environment variables, that they are masked by default, and that show_env_values toggles revelation. These details are only in the schema, so an agent unfamiliar with the tool might not realize the sensitive nature of the output. The description is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are fully documented in the schema. The description does not repeat or add anything about mcp_name or show_env_values. It passes the baseline threshold but does not enhance understanding of parameter usage beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Get') and a specific resource ('full configuration for a specific MCP server'). It implicitly distinguishes from siblings like list_all_mcps (which lists all) by focusing on 'specific'. It does not explicitly name an alternative, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as list_all_mcps or check_mcp_health. The description does not mention prerequisites, expected context (e.g., when you already know the server name), or when not to use it. An agent must infer usage from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_all_mcpsA

List all configured MCP servers from ~/.claude.json with their configuration. By default, values inside each server's 'env' field are redacted to '***' so this tool can't be used to exfiltrate API keys stored in MCP env. Pass show_env_values=true to reveal them when you legitimately need them.

ParametersJSON Schema
NameRequiredDescriptionDefault
show_env_valuesNoIf true, reveal raw 'env' values. Default false (values shown as '***').

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It explicitly reveals that env values are redacted by default, explains the security rationale (preventing exfiltration), and notes the behavior when show_env_values=true is passed. This goes beyond a simple 'list' operation and gives the agent important safety context. However, it does not mention output format or any other side effects, which are minor for a read-only list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no fluff. The main action is front-loaded, and the second sentence adds essential detail (redaction and parameter usage) without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional boolean parameter and no output schema, the description covers the purpose, source file, security behavior, and parameter semantics. It is complete enough for an agent to call the tool correctly without further clarification. The sibling tools are sufficiently differentiated by the 'all' scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter is well-documented. The description adds value beyond the schema by explaining the default redaction behavior and the legitimate use case for revealing values ('when you legitimately need them'). This contextualizes the parameter's purpose and security implications, earning a score above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('List') and resource ('all configured MCP servers from ~/.claude.json') and distinguishes from siblings by scope: it covers all servers, while siblings target individual servers (get_mcp_details), health checks, restarts, etc. This makes the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: to enumerate all configured MCP servers. It does not explicitly mention alternatives or when not to use it, but the purpose is self-evident given the name and description. The redaction note adds usage context for the parameter but not for alternatives, so it stops short of a full when/when-not explanation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_mcpA

Remove an MCP server from the user configuration (~/.claude/mcp.json).

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe name of the MCP server to remove

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden of behavioral disclosure. 'Remove' implies a destructive mutation, but it does not specify whether the operation irreversibly deletes the server definition, whether it affects running processes, or whether any confirmation is required. Without these details, an agent cannot fully anticipate consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-formed sentence with no wasted words. The core action and target are front-loaded, and the file path provides necessary specificity without clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter mutation tool without an output schema, the description covers the essential action and target. However, it does not mention error handling (e.g., behavior if the server name does not exist) or any prerequisites (e.g., whether the MCP must be stopped first). Given no annotations, a bit more context on consequences would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — the only parameter 'mcp_name' is described as 'The name of the MCP server to remove.' The description adds no extra information beyond the schema, so the baseline of 3 applies; the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Remove'), a clear resource ('MCP server'), and the exact configuration file path ('~/.claude/mcp.json'). This distinguishes it from siblings like add_mcp and configure_mcp, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: to remove an MCP server from the user configuration. It does not explicitly name alternatives or when-not-to-use conditions, but the sibling set makes the purpose obvious. For a simple removal tool, this is sufficient context, though it lacks explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restart_codex_mcp_processA

Restart a Codex CLI MCP server process. Works reliably only for wrapped MCPs (via wrap_codex_mcp_stdio) by killing the wrapped child PID from its pidfile; otherwise you typically need to restart Codex CLI.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe mcp_servers.<name> entry in ~/.codex/config.toml to restart

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the reliability limitation, the mechanism (killing the wrapped child PID from its pidfile), and the typical failure mode for unwrapped MCPs. It does not detail side effects or whether the process is restarted synchronously, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste. The action is stated first, followed by the key caveat. Information density is high and every clause adds value, making it an exemplary concise definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single well-documented parameter and no output schema, the description adequately covers purpose, limitations, and method. It could mention what the tool returns or whether it waits for restart, but these are minor omissions given the simplicity and the existing caveat.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description for 'mcp_name' is clear and specific ('The mcp_servers.<name> entry in ~/.codex/config.toml to restart'), giving 100% coverage. The tool description adds no extra parameter details, but since the schema already explains it well, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Restart') and resource ('Codex CLI MCP server process'), and implicitly differentiates from the sibling 'restart_mcp_process' by emphasizing the wrapped-MCP condition. It is not a tautology and clearly conveys the operation, though it could more explicitly name the generic sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear condition for reliable use ('only for wrapped MCPs') and notes the fallback ('restart Codex CLI') for other cases. However, it does not explicitly compare against alternatives like 'restart_mcp_process' or state when to use that sibling instead, leaving some routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restart_mcp_processA

Restart the underlying process for an MCP server by finding and killing its process. For wrapped stdio MCPs (via wrap_mcp_stdio), the wrapper will respawn automatically; otherwise you typically need to restart Claude CLI.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe name of the MCP server whose process should be restarted

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states that the tool kills the process, and clarifies the respawn behavior for wrapped stdio MCPs. Yet it omits potential side effects (e.g., disrupted connections, unsaved state), prerequisites (such as permissions), or error scenarios if the process is not found. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy, and the core action is front-loaded. The explanation of wrap behavior and the fallback to Claude CLI is compact and directly relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers the main use case and the key behavioral difference between wrapped and non-wrapped processes. While it does not address edge cases like invalid names or failure handling, it is complete enough for an agent to know when to call it and what to expect, especially given the clarity of the parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides full description coverage for the only parameter (mcp_name), and the tool description adds no further semantic details. At 100% coverage, the schema already carries the meaning, so the description does not need to compensate. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (restart), the target (underlying process for an MCP server), and the method (find and kill its process). It implies a distinction from restart_codex_mcp_process by referencing Claude CLI and wrap_mcp_stdio, which orients the agent toward the standard MCP context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when this tool is appropriate: for wrapped stdio MCPs the wrapper respawns automatically, and otherwise the user typically needs to restart Claude CLI. It provides actionable context about when manual restart is unnecessary versus when it is needed. However, it does not explicitly name the alternative restart_codex_mcp_process for Codex-related MCPs, leaving a slight gap in sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unwrap_mcp_stdioA

Unwrap a previously wrapped stdio MCP server, restoring its original command. Requires restarting Claude Code to take effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe name of the MCP server to unwrap

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses a key behavioral trait: the need for a restart. However, it doesn't mention whether the operation is reversible, idempotent, or what happens if the server isn't actually wrapped. These are minor gaps for a simple tool but keep it at a mid level.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the primary action and immediately follows with the critical operational note. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter operation with no output schema, the description covers the essential context: what it does, its effect (restoring original command), and the required follow-up action. It could mention expected return behavior, but that's a minor omission given the tool's simplicity and lack of complex output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a clear description for the single parameter (mcp_name). The tool description adds no new semantic detail about the parameter, and schema coverage is 100%, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (unwrap), the target (previously wrapped stdio MCP server), and the outcome (restoring its original command). It implicitly contrasts with sibling wrap tools, making it easy to distinguish as the inverse operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a clear prerequisite ('Requires restarting Claude Code to take effect') which informs the agent about the necessary post-step. It doesn't explicitly name alternatives, but the context of siblings like wrap_mcp_stdio makes the use case obvious. A brief note about when to use this versus unwrap_codex_mcp_stdio would push it to 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wrap_codex_mcp_stdioA

Wrap a Codex CLI stdio MCP server (from ~/.codex/config.toml) so it can be restarted reliably. Rewrites the MCP entry to launch mcpgo's Node wrapper that respawns the original command. Restart Codex CLI to take effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe mcp_servers.<name> entry in ~/.codex/config.toml to wrap

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It states that it rewrites the MCP entry, launches a wrapper that respawns the original command, and explicitly notes that a Codex CLI restart is required for the change to take effect. This covers the mutation, the new process behavior, and the required follow-up action. It could mention reversibility or impact on existing config, but the core side effects are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. The first sentence states the purpose and scope, the second explains how it works, and the third gives the required post-action. Everything is front-loaded and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the configuration file, the wrapper mechanic, and the restart requirement. It does not describe error handling or what happens if the mcp_name does not exist, but given the single parameter is fully documented and there is no output schema, the essential context for a successful call is present. Slight gap is the absence of any warning about config modification potentially needing backup, which would be nice but is not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema documents the single parameter mcp_name with a clear description (the mcp_servers.<name> entry). Since schema coverage is 100%, the parameter is fully self-documenting; the description adds no additional semantic detail beyond what is already in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb and resource: it wraps a Codex CLI stdio MCP server (from ~/.codex/config.toml). It names the target file and describes the mechanism (rewrites the entry to launch mcpgo's Node wrapper). This distinguishes it from the generic sibling wrap_mcp_stdio by scoping to Codex CLI stdio servers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for making Codex CLI stdio MCP servers restartable, which provides context. However, it does not explicitly state when to use this tool over the sibling wrap_mcp_stdio, nor any exclusions or prerequisites (e.g., that the server must already be configured in config.toml). Not misleading, but guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wrap_mcp_stdioA

Wrap a stdio MCP server so it can be restarted reliably. Updates ~/.claude.json to launch a Node wrapper that spawns the original command and respawns it when killed. Requires restarting Claude CLI to take effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesThe name of the MCP server to wrap

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the side effect on ~/.claude.json, the mechanism (Node wrapper that respawns when killed), and the restart prerequisite. It does not mention potential overwriting of existing config values or failure modes, but the disclosed behaviors are accurate and useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences: the first front-loads the purpose, the second explains the mechanism and requirement. Every clause adds value, with no fluff or repetition. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers the essentials: what it does, how it works, and the required restart. It could add caveats about config overwrites or error conditions, but these are minor given the tool's simplicity and the provided fact that it modifies ~/.claude.json.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (mcp_name is documented as 'The name of the MCP server to wrap'). The description adds no additional meaning beyond this – it doesn't explain how the name maps to config entries or any constraints. Baseline 3 is appropriate since the schema already fully describes the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('wrap') and the resource ('stdio MCP server'), and explains the purpose ('so it can be restarted reliably'). It differentiates from the sibling wrap_codex_mcp_stdio by explicitly targeting stdio servers, and implicitly contrasts with unwrap_mcp_stdio. The agent can tell exactly what this tool accomplishes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (when restart reliability is needed) and includes a key operational requirement ('Requires restarting Claude CLI to take effect'). However, it does not explicitly name alternative tools (e.g., unwrap_mcp_stdio, restart_mcp_process) or state when not to use it, which would strengthen guidance but is not essential given the clear purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.6
    • First observedadd_mcp
    • First observedcheck_mcp_health
    • First observedconfigure_mcp
    • First observedget_mcp_details
    • First observedlist_all_mcps
    • First observedremove_mcp
    • First observedrestart_codex_mcp_process
    • First observedrestart_mcp_process
    • First observedunwrap_mcp_stdio
    • First observedwrap_codex_mcp_stdio
    • First observedwrap_mcp_stdio

TDQS

A3.8/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a distinct purpose: listing, retrieving, health-checking, restarting, wrapping/unwrapping, configuring, adding, and removing MCP servers. The two restart tools and the two wrap tools are clearly differentiated by target client (Claude vs Codex), so there's no ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (list_all, get, check, restart, wrap, unwrap, configure, remove, add). The inclusion of client-specific modifiers (codex, stdio) is consistent and descriptive, and there are no mixed conventions or vague verbs.

Tool Count5/5

With 11 tools, the server is well-scoped for managing MCP server configurations. Each tool covers a distinct operation needed for lifecycle management, and the count is right in the sweet spot for a focused administrative utility.

Completeness4/5

The surface covers core CRUD operations (add, get, list, remove, configure) plus health and restart. However, there is no unwrap_codex_mcp_stdio tool to complement wrap_codex_mcp_stdio, leaving a minor asymmetric gap that agents would need to work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers