Token导航 LogoToken导航TokenDH.com
Awesome MCP Best Practices logo
运维云端stdio官方级别未说明来源级核验

Awesome MCP Best Practices

MCP Server

一个精选的MCP服务器和客户端构建最佳实践列表,涵盖工具命名、部署、安全和性能等方面。

工具数

0

提示词数

0

GitHub Stars

78

资源数

0
Docker性能优化本地部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lirantal

提供方

lirantal

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 3000:3000 your-mcp-server-image

详细介绍

卓越的MCP最佳实践 Awesome

一份精心策划的、有主见的优秀模型上下文协议(MCP)最佳实践列表,因为它们与构建MCP服务器和MCP客户端有关。

______________________________________________________________________

MCP服务器

  • 1 MCP服务器工具:

- 1.1 工具命名标准 - 1.2 避免未找到响应

  • MCP服务器部署:

-

  • MCP服务器安全:

- 安全MCP服务器代码 - 安全MCP服务器依赖关系

  • MCP服务器性能:
  • MCP服务器错误和可观察性:

MCP客户端

待定

______________________________________________________________________

1个MCP服务器工具

🔵 1.1工具命名标准

为您的MCP服务器使用一致、兼容的命名约定 Tools 以确保MCP客户端能够正确发现和调用它们。

❌ 避免这些工具命名约定

  • 空间: get Npm Package Info
  • 点符号: get.Npm.Package.Info
  • 括号/圆括号: get(Npm)PackageInfo

-

✅ 推荐的工具命名约定

  • ✅ camelCase(首选): getNpmPackageInfo
  • 烤肉串箱: get-npm-package-info
  • 蛇病例: get_npm_package_info
server.tool(
  "getNpmPackageInfo",
  "Get information about an npm package",
  {
    packageName: z.string()
  },
  async ({ packageName }) => {    
    // Implementation details...
    return {
      content: [{ type: "text", text: output }],
    };
  }
);

💡 为什么重要

使用非标准命名约定可能会阻止或干扰MCP客户端正确发现并向最终用户展示您的工具。GPT-4o代币化最适合 camelCase 命名约定。

______________________________________________________________________

🔵 1.2避免未找到响应

在MCP服务器中实现搜索类型工具时,即使没有精确匹配,也要避免返回显式的“未找到”消息。

❌ 问题模式

// Don't do this
if (!exactMatch) {
  return {
    content: [
      { 
        type: "text", 
        text: `Module ${query} not found. Here are all available modules: ${allModules}` 
      }
    ]
  };
}

✅ 推荐作法

// Do this instead
return {
  content: [
    { 
      type: "text",
      text: `Here are the available modules that may help with your query: ${relevantModules}`
    }
  ]
};

💡 为什么重要

让LLM根据提供的数据确定相关性,而不是过早地在工具响应中声明失败。LLM可能会受到“找不到”等负面陈述的过度影响,导致他们忽略下面的有用信息。通过提供没有负面框架的相关数据,您使LLM能够正确处理和利用所有可用信息。

⚠️ 重要例外

这种方法并不适用于所有场景。在处理敏感数据(如用户信息)时,安全和隐私问题应优先于提供替代数据。

______________________________________________________________________

MCP服务器部署:

🔵 将MCP服务器打包为Docker容器

将MCP服务器部署为Docker容器,以消除环境设置挑战,并确保跨不同系统的一致操作。

💡 为什么重要

MCP服务器通常需要具有特定版本和依赖关系的特定运行时环境(Node.js、Python)。Docker抽象了这些要求,将复杂的设置指令转化为简单的容器运行命令。

💪 关键利益

  • 一致性:消除“在我的机器上工作”的问题
  • 隔离:防止与主机系统的依赖性冲突
  • 可移植性:在开发、测试和生产过程中运行一致
  • 简化部署:将用户设置减少到安装Docker和运行容器
  • 资源管理:提供用于控制CPU、内存和网络使用的内置工具

示例 Dockerfile 打包MCP服务器的实现:

FROM node:18-slim

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "server.js"]

用户按如下方式运行它:

docker run -p 3000:3000 your-mcp-server-image

______________________________________________________________________

MCP服务器安全:

🔵 安全MCP服务器依赖关系

确保您的MCP服务器没有第三方依赖关系中的已知漏洞,以满足安全要求并促进组织采用。

💡 为什么重要

MCP服务器通常需要广泛的访问和集成能力,因此任何漏洞都是重大的安全风险。组织IT和安全团队在批准采用之前会仔细审查这些依赖关系。

  • MCP服务器必须满足严格的安全和合规要求
  • 易受攻击的依赖关系为恶意行为者创造了潜在的入口点
  • SolarWinds攻击后,SBOM要求强制实施安全措施

✅ 推荐作法

  • 定期扫描依赖关系以查找已知漏洞
  • 将所有组件更新到最新的安全版本
  • 监控与您的依赖关系相关的安全建议
  • 确保符合许可和安全标准

目录标签

目录标签

Docker性能优化本地部署MCP服务器工具命名Docker部署安全实践

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP