MCP Client Configuration Server
MCP 客户端配置服务器
此 MCP 服务器可帮助管理不同 MCP 客户端的配置。它提供从客户端配置文件中检索、列出、添加和删除服务器配置的工具。服务器会根据操作系统(Windows 或 macOS)和指定的客户端自动检测相应的配置文件路径。
安装
# Install from npm
npm install -g @landicefu/mcp-client-configuration-server
# Or use npx to run without installing
npx @landicefu/mcp-client-configuration-serverRelated MCP server: MCP Configuration Editor
配置
要在您的 AI 助手中使用此 MCP 服务器,请将其添加到您的 MCP 设置配置中:
{
"mcpServers": {
"mcp-client-configuration": {
"command": "npx",
"args": ["-y", "@landicefu/mcp-client-configuration-server"],
"env": {},
"disabled": false,
"alwaysAllow": []
}
}
}支持的客户机
Cline :Claude 驱动的编码助手
Roo Code :具有 AI 功能的代码编辑器
WindSurf :人工智能浏览器
Claude app :Claude AI 的桌面应用程序
注意: Cursor 不再受支持,因为它不使用标准配置文件进行 MCP 设置。Cursor 似乎以一种我们无法轻易修改的方式存储其 MCP 配置,这使其与此配置服务器基于文件的方法不兼容。
用法
该服务器特别适用于:
跨多个客户端管理 MCP 服务器:配置一次服务器并将其部署到多个客户端
自动化配置:脚本可以使用此服务器以编程方式管理 MCP 配置
故障排除:轻松检查已配置的服务器及其设置
示例:将服务器配置从 Roo Code 复制到 Claude 应用程序
这是一个简单的提示,您可以使用 AI 助手将 MCP 服务器配置从 Roo Code 复制到 Claude 桌面应用程序:
Please copy the "brave-search" MCP server configuration from Roo Code to my Claude desktop app.人工智能助手将在后台执行以下步骤:
从 Roo 代码获取服务器配置:
// First, get the server configuration from Roo Code
{
"client": "roo_code",
"server_name": "brave-search"
}然后给Claude添加同样的配置:
// Then add it to Claude with the same settings
{
"client": "claude",
"server_name": "brave-search",
"json_config": {
// Configuration retrieved from previous step
},
"allow_override": true
}这使得您可以轻松地在不同的 AI 助手之间同步您的 MCP 服务器配置。
工具
获取配置路径
检索指定客户端的配置文件路径。
参数:
client(必填):客户名称(cline、roo_code、windsurf、claude)
返回:
配置文件的绝对路径
获取配置
检索指定客户端的完整配置。
参数:
client(必填):客户名称(cline、roo_code、windsurf、claude)
返回:
来自客户端配置文件的完整 JSON 配置
列表服务器
列出指定客户端配置中配置的所有服务器名称。
参数:
client(必填):客户名称(cline、roo_code、windsurf、claude)
返回:
服务器名称数组
获取服务器配置
从客户端的配置中检索特定服务器的配置。
参数:
client(必填):客户名称(cline、roo_code、windsurf、claude)server_name(必需):要检索的服务器的名称
返回:
指定服务器的 JSON 配置
添加服务器配置
在客户端的配置文件中添加或更新服务器配置。
参数:
client(必填):客户名称(cline、roo_code、windsurf、claude)server_name(必需):要添加或更新的服务器的名称json_config(必需):JSON 格式的服务器配置
例子:
{
"command": "npx",
"args": ["-y", "@landicefu/android-adb-mcp-server"],
"env": {},
"disabled": false,
"alwaysAllow": []
}返回:
包含更新配置的成功消息
删除服务器配置
从客户端的配置文件中删除服务器配置。
参数:
client(必填):客户名称(cline、roo_code、windsurf、claude)server_name(必需):要删除的服务器的名称
返回:
已删除的配置或未找到服务器的消息
实现细节
服务器根据操作系统(Windows 或 macOS)和指定的客户端检测适当的配置文件路径。
所有配置文件修改后均以美化的JSON格式维护。
当配置文件不存在或无法访问时,提供错误处理。
如果配置文件和目录不存在,服务器会自动创建。
每个客户端的配置路径:
窗户:
Cline:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonRoo 代码:
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json风帆:
%APPDATA%\WindSurf\mcp_settings.json克劳德:
%APPDATA%\Claude\claude_desktop_config.json
macOS 系统:
Cline:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonRoo 代码:
~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json风帆:
~/.codeium/windsurf/mcp_config.json克劳德:
~/Library/Application Support/Claude/claude_desktop_config.json
故障排除
常见问题
未找到配置文件
添加新服务器时,如果配置文件不存在,则会自动创建。
对于其他操作,如果配置文件不存在,您将收到一条错误消息。
服务器已存在
添加已存在的服务器时,您需要将
allow_override设置为true才能更新它。例子:
{ "client": "cline", "server_name": "existing-server", "json_config": { /* new config */ }, "allow_override": true }
不受支持的平台
目前仅支持 Windows 和 macOS。
未来版本可能会添加 Linux 支持。
最佳实践
在尝试更新或删除服务器之前,请务必检查服务器是否存在。
在客户端之间使用一致的服务器名称可以简化管理。
考虑使用环境变量来存储服务器配置中的敏感信息。
Available Tools
6 toolsadd_server_configurationC
Add or update a server configuration in a client configuration
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Client name (cline, roo_code, windsurf, claude) | |
| server_name | Yes | Name of the server to add or update | |
| json_config | Yes | Server configuration in JSON format | |
| allow_override | No | Whether to allow overriding an existing server configuration with the same name (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Add or update' which implies mutation, but fails to describe critical behaviors such as permissions required, idempotency, error handling, or what happens on conflicts (beyond the 'allow_override' parameter). This leaves significant gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and appropriately sized, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error conditions, return values, and how it interacts with sibling tools. This makes it incomplete for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description does not add any additional meaning or context beyond what the schema provides, such as examples or usage notes for 'json_config' or 'client'. Thus, it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add or update') and the target resource ('a server configuration in a client configuration'), making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'remove_server_configuration' or 'get_server_configuration', which would be needed for a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'remove_server_configuration' or 'get_server_configuration', nor does it mention prerequisites or context for usage. It merely restates the tool's function without offering operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configurationC
Get the entire configuration for a specific client
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Client name (cline, roo_code, windsurf, claude) |
TDQS
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 states this is a 'Get' operation, implying read-only behavior, but doesn't clarify permissions, rate limits, error handling, or what 'entire configuration' entails (e.g., format, size). This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the 'entire configuration' returns (e.g., structure, data types) or address potential complexities like authentication needs or error cases, which are critical for a configuration retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the input schema fully documents the 'client' parameter. The description adds no additional meaning beyond implying the parameter selects a client, which is already clear from the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('entire configuration for a specific client'), making the purpose understandable. It doesn't explicitly differentiate from sibling tools like 'get_configuration_path' or 'get_server_configuration', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_configuration_path' or 'get_server_configuration'. The description implies usage for client configurations but doesn't specify exclusions or prerequisites, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configuration_pathC
Get the path to the configuration file for a specific client
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Client name (cline, roo_code, windsurf, claude) |
TDQS
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 states a read operation ('Get'), implying it's likely safe and non-destructive, but doesn't specify whether it requires authentication, returns absolute/relative paths, handles errors for invalid clients, or has any rate limits. This leaves significant behavioral gaps for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main action and resource, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't explain what the returned path looks like (e.g., string format, filesystem type), error conditions, or how it differs from sibling tools. For a tool with one parameter but no structured output info, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'client' fully documented in the schema. The description adds minimal value beyond the schema by implying the client name is used to locate a configuration file, but doesn't provide additional context like file format or location constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('path to the configuration file'), making it immediately understandable. However, it doesn't explicitly distinguish this tool from its sibling 'get_configuration' (which likely retrieves configuration content rather than just the file path), missing full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_configuration' or 'get_server_configuration'. It mentions a 'specific client' but doesn't clarify if this is for client-side versus server-side configurations or when path retrieval is preferred over content retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_configurationB
Get the configuration for a specific server from a client configuration
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Client name (cline, roo_code, windsurf, claude) | |
| server_name | Yes | Name of the server to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, the description doesn't specify whether this requires authentication, has rate limits, returns structured data, or what happens if the server doesn't exist. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the core purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with no output schema and no annotations, the description provides the basic purpose but lacks important context. It doesn't explain what format the configuration returns, whether it's JSON/YAML/text, or what happens on errors. With siblings suggesting a configuration management system, more behavioral context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter information beyond what's already in the schema, which has 100% coverage with clear descriptions for both 'client' and 'server_name'. The baseline score of 3 reflects that the schema adequately documents parameters, though the description could have provided additional context about parameter relationships or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('configuration for a specific server from a client configuration'), making the purpose understandable. However, it doesn't explicitly differentiate this from sibling tools like 'get_configuration' or 'get_configuration_path', which likely retrieve different types of configuration data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_configuration' and 'get_configuration_path' that might retrieve different scopes of configuration data, there's no indication of when this specific server-focused retrieval is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_serversC
List all server names configured in a specific client
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Client name (cline, roo_code, windsurf, claude) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'lists' server names, implying a read-only operation, but doesn't clarify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes (e.g., list of strings, structured data). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that likely returns a list of server names. It doesn't explain the return format, error conditions, or behavioral traits like whether it's safe to call repeatedly. For a read operation with structured siblings, more context is needed to guide proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'client' fully documented in the schema. The description adds no additional parameter semantics beyond implying the tool operates within a client context, which is already covered by the schema's description. This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all server names') and resource ('configured in a specific client'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_server_configuration' or 'get_configuration', which might also retrieve server-related information but with different scope or detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_server_configuration' or 'get_configuration'. It mentions 'in a specific client' which implies a context, but doesn't state exclusions, prerequisites, or when-not-to-use scenarios relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_server_configurationC
Remove a server configuration from a client configuration
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Client name (cline, roo_code, windsurf, claude) | |
| server_name | Yes | Name of the server to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Remove' implies a destructive mutation, the description does not specify whether this action is reversible, what permissions are required, or the impact on the client configuration (e.g., if it affects functionality). It also omits details like error handling or response format, leaving significant gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and efficiently conveys the core action, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a destructive mutation tool with no annotations and no output schema, the description is incomplete. It fails to address critical aspects such as the consequences of removal, required permissions, error scenarios, or what the tool returns. For a tool that modifies configurations, more context is needed to ensure safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for both parameters ('client' and 'server_name'). The description does not add any semantic details beyond what the schema provides, such as examples or constraints on parameter values. However, with high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and the target ('a server configuration from a client configuration'), which is specific and actionable. However, it does not explicitly distinguish this tool from its siblings like 'remove_server_configuration' vs 'add_server_configuration' or 'get_server_configuration', which would require mentioning the destructive nature or contrasting with read operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lacks context such as prerequisites (e.g., the server must exist in the configuration), when not to use it (e.g., if the server is critical), or references to sibling tools like 'add_server_configuration' or 'get_server_configuration' for comparison.
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.
6 tool updates
- First observed
add_server_configuration - First observed
get_configuration - First observed
get_configuration_path - First observed
get_server_configuration - First observed
list_servers - First observed
remove_server_configuration
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose with no ambiguity: adding/updating, getting full config, getting config path, getting server-specific config, listing servers, and removing server config. The descriptions clearly differentiate between operations on the entire configuration versus specific servers.
All tools follow a consistent verb_noun pattern using snake_case throughout. The naming convention is perfectly uniform with clear action prefixes (add, get, list, remove) followed by specific objects (server_configuration, configuration, configuration_path, etc.).
Six tools is well-scoped for a client configuration management server. Each tool earns its place by covering essential CRUD operations for server configurations within client configs, plus utility functions for listing and path retrieval. The count is neither too sparse nor bloated.
The tool set provides complete lifecycle coverage for managing server configurations within client configurations: create/update (add_server_configuration), read (get_configuration, get_server_configuration, list_servers), delete (remove_server_configuration), plus utility (get_configuration_path). No obvious gaps exist for the stated domain.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for progressive tool usage at any scale (see https://klavis.ai)
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP server that provides easy setup and configuration for multiple AI development environments including Claude Desktop, VS Code, and Windsurf. Offers automated installation scripts and manual configuration options for seamless integration across different MCP-compatible clients.18-
- AlicenseAqualityDmaintenanceEnables safe management of MCP server configuration files for AWS Q Developer and Claude Desktop, including adding, updating, removing servers, automatic backups, and validation.7MIT
- FlicenseAqualityCmaintenanceA robust MCP server with tools to search, install, configure, repair, and uninstall MCP servers, automating setup and maintenance across multiple AI and developer tools.417-
- AlicenseNot gradedqualityCmaintenanceAutomatically synchronizes and deduplicates MCP configurations from Claude Code, Codex CLI, Cursor Agent, and custom sources, providing a centralized view and management interface.181 npmMIT
Appeared in Searches
- Open Source MCP Server for Managing and Updating MCP Configurations in VSCode
- A guide to CI/CD (Continuous Integration and Continuous Deployment)
- A server that finds and installs other MCP servers
- Using Windsurf and Claude Tools or Technologies
- Information or connection related to Zed, Roo Code, and Goose