---
title: "面向产品与内部工具的 MCP 服务器开发"
canonical: https://wavect.io/zh/services/mcp-server-development/
language: zh
description: "Wavect 开发 MCP 服务器，让 AI 智能体能够使用你的产品或内部工具：工具设计、OAuth、权限范围、版本管理，以及用真实 MCP 客户端测试。"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

MCP 服务器

# 让智能体在你设定的边界内使用你的产品。

AI 智能体能做什么，取决于你的工具允许什么。我们设计工具，把它们接入你的身份提供方，限定每个调用方可以读取和修改的内容，并用你的用户实际使用的 MCP 客户端测试服务器。

合作范围

## 设计工具。限定访问。用真实客户端测试。

1. **选定操作** 智能体需要哪些读写权限，哪些永远不给。
2. **构建服务器** 在你的技术栈中实现工具、授权、多租户和错误处理。
3. **验证并交接** 客户端测试、版本策略和运维说明。

服务概要

MCP 服务器开发通过 Model Context Protocol 把你的产品或内部工具开放给 AI 智能体。本服务涵盖工具设计、授权、权限范围、版本管理和真实 MCP 客户端测试，以代码形式交付到你的代码仓库。

适合这些情况

- 客户希望从 Claude、ChatGPT、Cursor 或自有智能体中使用产品的 SaaS 团队
- 希望内部智能体在明确权限范围内操作内部系统的公司

其他服务可能更合适

- 在两个业务系统之间同步记录，过程中没有智能体参与
- 对已有 MCP 服务器做独立的滥用与权限测试

## 这是给智能体用的接口，不是又一个系统集成

本服务构建 AI 智能体调用的接口。按计划或事件在两个业务系统之间搬运记录，属于 [API 集成](/zh/services/api-integration/) ；对完成的服务器做独立的权限与滥用测试，属于 [AI 安全服务](/zh/services/ai-security/) ；智能体产品本身，包括提示词、模型和用户体验，属于 [AI 产品开发](/zh/services/artificial-intelligence/) 。如果还在 MCP、检索和 Agent Skills 之间做选择，请先阅读 [MCP、RAG、Agent Skills 与 Custom GPTs 对比](/zh/blog/mcp-vs-rag-vs-agent-skills-vs-custom-gpts/) 。

## 围绕智能体能够核验的结果来设计工具

工具是模型要读的一份约定。名称、描述、输入结构和错误信息决定了智能体能否正确调用它。少量边界清晰的工具，胜过把每个 API 端点原样映射一遍。

读写分离

只读工具与修改数据、花钱或联系他人的工具分开。破坏性操作需要确认，或使用更窄的权限范围。

输入结构与错误

有类型的输入、有上限的结果大小，以及告诉智能体该改什么的错误信息，而不是一段堆栈跟踪。

显式的应用状态

购物车、审批和长时间任务都有自己的 ID 和存储，这样任何一个服务器实例都能处理下一次请求。

发现元数据

提供 server card 和工具注解，让客户端和审核人员在连接前就能看到服务器提供什么。

## 通过你的身份提供方授权，按调用方限定权限

按照当前的 MCP 规范，远程服务器是 OAuth 2.1 资源服务器：它验证由你的身份提供方签发的令牌，而不是自己运行一套登录系统。令牌以该服务器为受众进行绑定，绝不透传给下游 API。本地 STDIO 服务器则从运行环境中获取凭据。 [企业级 MCP 授权架构](/zh/blog/enterprise-mcp-authorization-architecture/) 展示了我们采用的多租户设计起点。数据层面的校验仍放在你的后端，因为协议本身 [并不是安全边界](/zh/blog/mcp-security-boundary-data-level-access-control/) 。

## 经得起协议和产品变化的版本管理

MCP 2026-07-28 版本让协议变为无状态：没有初始化握手，没有会话头，每个请求自带所需的协议版本和客户端能力。我们按目标客户端支持的版本构建，尽量保持工具变更向后兼容，无法避免时记录哪些地方会被破坏。 [无状态 MCP 迁移指南](/zh/blog/mcp-stateless-server-migration-2026/) 详细介绍了传输层的变化。

## 设计、构建，并用真实客户端测试

每个阶段开始前确认范围和报价。你的团队可以自行采用设计方案，也可以委托我们实施约定的内容。

1. **工具与访问设计** - 工具清单及其输入输出、所需权限范围、租户模型，以及始终不开放的操作。
2. **实施与客户端测试** - 交付到你代码仓库中的服务器、自动化测试，以及在约定 MCP 客户端上的运行记录。
3. **持续开发** - 新工具、协议更新和客户端变化另行约定，不因此产生全天候支持或可用性 SLA。

## 我们自己在生产环境中运行 MCP 服务器

Wavect 在 wavect.io/mcp 运行一个公开的 MCP 端点，采用无状态的 2026-07-28 版本。服务与案例的只读工具和购买操作分开；购买操作只有在启用商务功能时才可见，并且需要明确的支付步骤。我们还免费发布了 [MCP Install Risk Scanner](/zh/tools/mcp-install-risk-scanner/) ，在任何人执行 MCP 安装命令之前标出其中的风险模式。这是我们自己的产品，不是客户项目。 [信任中心](/zh/trust-center/) 说明了我们的交付责任和服务水平。

// 实证

## 相关的工程实践

我们目前还没有公开的客户 MCP 服务器案例，也不会声称有。Aniron 案例记录了相关工作：Wavect 是一个 AI 推理 API 开发者门户的主要贡献方，涵盖 API 密钥、预付额度、用量查看和集成。我们自己在生产环境运行的 MCP 端点见上文。两者都不保证其他系统取得相同结果。

### [Aniron](/zh/case-studies/aniron/)
- **状态:** 上线
- **成果:** 开发者门户 - 交付客户注册引导、API 密钥管理、预付充值和使用情况展示。
- **概要:** Wavect 是 Aniron 开发者应用的主要贡献方，工作涵盖 API 密钥、预付额度、使用情况和集成。
- **技术栈:** TypeScript, Next.js, React

这些是精选项目，并非我们的全部作品。自 2018 年以来我们已交付 100+ 款产品。

## 开始前的常见问题

### 我们需要 MCP，还是现有 REST API 就够了？

如果智能体只需从单一平台调用少数几个端点，基于你的 API 做函数调用可能就够了。当多个智能体客户端需要以一致的授权和发现机制使用同一套工具时，MCP 才更划算。

### 远程服务器还是本地服务器？

通过 HTTP 访问的远程服务器适合 SaaS 产品和共享的内部工具，经由你的身份提供方做 OAuth。本地 STDIO 服务器适合在用户本机运行的开发者工具。我们会在确定范围时确认选择。

### 你们用哪些 MCP 客户端测试？

用你的用户实际使用的客户端，在范围中约定。不同客户端对协议版本和授权的支持不同，因此方案会写明包含的客户端及其版本。

### 智能体能通过服务器删除数据或花钱吗？

只有你决定允许时才可以。我们会把这类操作单独分开、严格限定范围并要求确认，权限在你的后端强制执行，而不只是写在工具描述里。

### 包含安全审查吗？

授权设计和约定权限范围的测试属于开发工作的一部分。对完成的服务器做独立的滥用与权限测试，需作为 AI 安全服务另行确定范围。

## 选择下一步

- [连接业务系统](/zh/services/api-integration/)
- [测试智能体权限与滥用场景](/zh/services/ai-security/)
- [开发 AI 智能体产品](/zh/services/artificial-intelligence/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/zh/services/mcp-server-development/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "人工智能",
      "dateModified": "2026-10-30",
      "description": "Wavect 开发 MCP 服务器，让 AI 智能体能够使用你的产品或内部工具：工具设计、OAuth、权限范围、版本管理，以及用真实 MCP 客户端测试。",
      "name": "面向产品与内部工具的 MCP 服务器开发",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "MCP 服务器开发",
      "url": "https://wavect.io/zh/services/mcp-server-development/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/",
          "name": "首页",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/",
          "name": "服务",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/#ai",
          "name": "人工智能",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/mcp-server-development/",
          "name": "MCP 服务器开发",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/zh/services/mcp-server-development/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-30",
      "description": "Wavect 开发 MCP 服务器，让 AI 智能体能够使用你的产品或内部工具：工具设计、OAuth、权限范围、版本管理，以及用真实 MCP 客户端测试。",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/zh/services/mcp-server-development/#service"
      },
      "name": "面向产品与内部工具的 MCP 服务器开发",
      "url": "https://wavect.io/zh/services/mcp-server-development/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "如果智能体只需从单一平台调用少数几个端点，基于你的 API 做函数调用可能就够了。当多个智能体客户端需要以一致的授权和发现机制使用同一套工具时，MCP 才更划算。"
      },
      "name": "我们需要 MCP，还是现有 REST API 就够了？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "通过 HTTP 访问的远程服务器适合 SaaS 产品和共享的内部工具，经由你的身份提供方做 OAuth。本地 STDIO 服务器适合在用户本机运行的开发者工具。我们会在确定范围时确认选择。"
      },
      "name": "远程服务器还是本地服务器？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "用你的用户实际使用的客户端，在范围中约定。不同客户端对协议版本和授权的支持不同，因此方案会写明包含的客户端及其版本。"
      },
      "name": "你们用哪些 MCP 客户端测试？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "只有你决定允许时才可以。我们会把这类操作单独分开、严格限定范围并要求确认，权限在你的后端强制执行，而不只是写在工具描述里。"
      },
      "name": "智能体能通过服务器删除数据或花钱吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "授权设计和约定权限范围的测试属于开发工作的一部分。对完成的服务器做独立的滥用与权限测试，需作为 AI 安全服务另行确定范围。"
      },
      "name": "包含安全审查吗？"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
