MCP协议服务器

一个为AI代理和LLMs设计的模型上下文协议(MCP)服务器,支持在AWS Lambda上无服务器运行,并使用流式HTTP传输以实现与任何MCP客户端的兼容性。

  • by stacktape
  • TypeScript
  • 云端部署
  • 更新于
在 GitHub 查看 stacktape/starter-mcp-server

使用说明

MCP服务器

[!提示] 使用以下命令部署此项目 基于GUI的流程,导航到 控制台

先决条件

  1. AWS帐户如果你没有, 在此处创建新帐户.

  2. Stacktape帐户如果你没有, 在此处创建新帐户.

  3. Stacktape已安装.

Install on Windows (Powershell)
iwr https://installs.stacktape.com/windows.ps1 -useb | iex
Install on Linux
curl -L https://installs.stacktape.com/linux.sh | sh
Install on MacOS
curl -L https://installs.stacktape.com/macos.sh | sh
Install on MacOS ARM (Apple silicon)
curl -L https://installs.stacktape.com/macos-arm.sh | sh

1.生成您的项目

要初始化项目,请使用

stacktape init --starterId mcp-server

2.部署您的堆栈

部署大约需要5-15分钟。后续部署将大大加快。

Deploy from local machine

从本地计算机部署将从您的系统构建和部署应用程序。这意味着您还需要:

  • Docker。要在您的系统上安装Docker,您可以按照以下步骤操作 本指南.-已安装Node.js。

要执行部署,请使用以下命令:

stacktape deploy --projectName <<project-name>> --stage <<stage>> --region <<region>>

stage 是环境的任意名称(例如 暂存, 生产 或 德夫约翰)

region 是AWS区域,您的堆栈将部署到该区域。下面列出了所有可用区域。

projectName 是您项目的名称。您可以在控制台中创建它,也可以使用CLI以交互方式创建它。


区域名称和位置 代码
欧洲(爱尔兰) 东西1
欧洲(伦敦) 东西2
欧洲(法兰克福) 欧洲中心-1
欧洲(米兰) 东南1
欧洲(巴黎) 东西3
欧洲(斯德哥尔摩)
美国东部(俄亥俄州) 美国东部-2
美国东部(北弗吉尼亚州) 美国东部-1
美国西部(北加州) 美国西部-1
美国西部(俄勒冈州) 美国西部-2
加拿大(中部) ca-Central-1
非洲(开普敦)
亚太地区(香港) ap-east-1
亚太地区(孟买) ap-south-1
亚太地区(大阪本地) ap-northeast-3
亚太(首尔) 亚太东北2
亚太地区(新加坡) ap-southeast-1
亚太地区(悉尼) ap-southeast-2
亚太地区(东京) ap-northeast-1
中国(北京) cn-north-1
中国(宁夏) 西北1号
中东(巴林) 中东-1
南美洲(圣保罗) 东部-1
Deploy using AWS CodeBuild pipeline

使用AWS CodeBuild进行部署将在内部构建和部署您的应用程序 AWS CodeBuild管道。要执行部署,请使用

stacktape codebuild:deploy --stage <<stage>> --region <<region>> --projectName <<project-name>>

stage 是环境的任意名称(例如 暂存, 生产 或 德夫约翰)

region 是AWS区域,您的堆栈将部署到该区域。下面列出了所有可用区域。

projectName 是您项目的名称。您可以在控制台中创建它,也可以使用CLI以交互方式创建它。


区域名称和位置 代码
欧洲(爱尔兰) 东西1
欧洲(伦敦) 东西2
欧洲(法兰克福) 欧洲中心-1
欧洲(米兰) 东南1
欧洲(巴黎) 东西3
欧洲(斯德哥尔摩)
美国东部(俄亥俄州) 美国东部-2
美国东部(北弗吉尼亚州) 美国东部-1
美国西部(北加州) 美国西部-1
美国西部(俄勒冈州) 美国西部-2
加拿大(中部) ca-Central-1
非洲(开普敦)
亚太地区(香港) ap-east-1
亚太地区(孟买) ap-south-1
亚太地区(大阪本地) ap-northeast-3
亚太(首尔) 亚太东北2
亚太地区(新加坡) ap-southeast-1
亚太地区(悉尼) ap-southeast-2
亚太地区(东京) ap-northeast-1
中国(北京) cn-north-1
中国(宁夏) 西北1号
中东(巴林) 中东-1
南美洲(圣保罗) 东部-1
Deploy using Github actions CI/CD pipeline
  1. 如果您没有,请在以下位置创建一个新的存储库https://github.com/new
  2. 创建Github存储库机密:https://docs.stacktape.com/user-guides/ci-cd/#2-创建github存储库机密
  3. 替换 <<stage>> 和 <<region>> 在.github/works/deploy.yml文件中。
  4. git init --initial-branch=main
  5. git add .
  6. git commit -m "setup stacktape project"
  7. git remote add origin git@github.com:<<namespace-name>>/<<repo-name>>.git
  8. git push -u origin main
  9. 要监视部署进度,请导航到您的github项目并选择Actions选项卡

stage 是环境的任意名称(例如 暂存, 生产 或 德夫约翰)

region 是AWS区域,您的堆栈将部署到该区域。下面列出了所有可用区域。

projectName 是您项目的名称。您可以在控制台中创建它,也可以使用CLI以交互方式创建它。


区域名称和位置 代码
欧洲(爱尔兰) 东西1
欧洲(伦敦) 东西2
欧洲(法兰克福) 欧洲中心-1
欧洲(米兰) 东南1
欧洲(巴黎) 东西3
欧洲(斯德哥尔摩)
美国东部(俄亥俄州) 美国东部-2
美国东部(北弗吉尼亚州) 美国东部-1
美国西部(北加州) 美国西部-1
美国西部(俄勒冈州) 美国西部-2
加拿大(中部) ca-Central-1
非洲(开普敦)
亚太地区(香港) ap-east-1
亚太地区(孟买) ap-south-1
亚太地区(大阪本地) ap-northeast-3
亚太(首尔) 亚太东北2
亚太地区(新加坡) ap-southeast-1
亚太地区(悉尼) ap-southeast-2
亚太地区(东京) ap-northeast-1
中国(北京) cn-north-1
中国(宁夏) 西北1号
中东(巴林) 中东-1
南美洲(圣保罗) 东部-1
Deploy using Gitlab CI pipeline
  1. 如果您没有,请在以下位置创建一个新的存储库https://gitlab.com/projects/new
  2. 创建Gitlab存储库机密:https://docs.stacktape.com/user-guides/ci-cd/#2-创建gitlab存储库机密
  3. 替换 <<stage>> 和 <<region>> 在.gitlab-ci.yml文件中。
  4. git init --initial-branch=main
  5. git add .
  6. git commit -m "setup stacktape project"
  7. git remote add origin git@gitlab.com:<<namespace-name>>/<<repo-name>>.git
  8. git push -u origin main
  9. To monitor the deployment progress, navigate to your gitlab project and select CI/CD->jobs

stage 是环境的任意名称(例如 暂存, 生产 或 德夫约翰)

region 是AWS区域,您的堆栈将部署到该区域。下面列出了所有可用区域。

projectName 是您项目的名称。您可以在控制台中创建它,也可以使用CLI以交互方式创建它。


区域名称和位置 代码
欧洲(爱尔兰) 东西1
欧洲(伦敦) 东西2
欧洲(法兰克福) 欧洲中心-1
欧洲(米兰) 东南1
欧洲(巴黎) 东西3
欧洲(斯德哥尔摩)
美国东部(俄亥俄州) 美国东部-2
美国东部(北弗吉尼亚州) 美国东部-1
美国西部(北加州) 美国西部-1
美国西部(俄勒冈州) 美国西部-2
加拿大(中部) ca-Central-1
非洲(开普敦)
亚太地区(香港) ap-east-1
亚太地区(孟买) ap-south-1
亚太地区(大阪本地) ap-northeast-3
亚太(首尔) 亚太东北2
亚太地区(新加坡) ap-southeast-1
亚太地区(悉尼) ap-southeast-2
亚太地区(东京) ap-northeast-1
中国(北京) cn-north-1
中国(宁夏) 西北1号
中东(巴林) 中东-1
南美洲(圣保罗) 东部-1

3.测试您的应用程序

成功部署后,有关堆栈的一些信息将打印到终端(网址 已部署服务的链接 日志, 指标等等)。

  • 这 MCP服务器URL 部署后打印到终端。通过指向以下位置连接任何兼容MCP的客户端 URL与 /mcp 路径附加。

  • 克劳德桌面版 --添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "my-mcp-server": {
      "type": "streamableHttp",
      "url": "<MCP_SERVER_URL>/mcp"
    }
  }
}
  • 光标 --使用URL添加到MCP设置 <MCP_SERVER_URL>/mcp.

  • 卷曲快速测试:

curl -X POST <MCP_SERVER_URL>/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'

4.在开发模式下运行应用程序

要在开发模式下运行函数(在AWS上远程运行),您可以使用 dev命令例如,开发和调试lambda函数 mcpServer,您可以使用

stacktape dev --region <<your-region>> --stage <<stage>> --resourceName mcpServer

该命令将:

  • 快速重新构建和重新部署新的功能代码
  • 注意功能日志并将其漂亮地打印到终端

当您执行以下任一操作时,该功能将被重建和重新部署:

  • 类型 rs + enter 到终端
  • 使用 --watch 选项和其中一个源代码文件发生更改

5.热插拔部署

  • Stacktape部署使用 AWS云形成 引擎盖下。它 带来了很多保证和便利,但对于某些用例来说可能很慢。

  • 为了加快部署速度,您可以使用 --hotSwap 避免使用Cloudformation的标志。

  • 热交换部署仅适用于源代码更改(用于lambda函数、容器和批处理作业)以及将内容上传到bucket。

  • 如果更新部署不可热插拔,Stacktape将自动回退到使用Cloudformation部署。

stacktape deploy --hotSwap --stage <<stage>> --region <<region>> --projectName <<project-name>>

6.删除您的堆栈

  • 如果你不想再使用你的堆栈,你可以删除它。
  • Stacktape将自动删除与堆栈关联的每个基础设施资源和部署工件。
stacktape delete --stage <<stage>> --region <<region>>

堆栈描述

Stacktape使用了一个简单的 stacktape.yml 描述基础设施资源、打包、部署的配置文件 管道和项目的其他方面。

您可以将项目部署到多个环境(阶段)- 例子 production, staging 或 dev-john堆栈是项目的运行实例。它由您的应用程序组成 代码(如果有的话)和运行它所需的基础设施资源。

此项目的配置如下所述。

1.资源

  • 每个资源都必须有一个任意的字母数字名称(A-z0-9)。
  • Stacktape资源由多个底层AWS或第三方资源组成。

1.1 MCP服务器功能

MCP服务器在Lambda函数中运行 Lambda URL 这已经 响应流 启用这允许服务器实时将服务器发送事件(SSE)流式传输回MCP客户端,这对 可流式HTTP传输。

  • 记忆 设置为1024 MB以用于响应工具执行。
  • 超时 设置为60秒,以适应更长时间的运行工具调用。
  • 跨域资源共享 完全开放,便于客户端集成。
mcpServer:
  type: function
  properties:
    packaging:
      type: stacktape-lambda-buildpack
      properties:
        entryfilePath: ./src/index.ts
    memory: 1024
    timeout: 60
    url:
      enabled: true
      responseStreamEnabled: true
      cors:
        allowedOrigins:
          - "*"
        allowedMethods:
          - "*"
        allowedHeaders:
          - "*"

1.2 CDN(可选)

您可以附上 内容分发网络 在用于缓存的Lambda URL前面,自定义 域和边缘TLS终止。向添加CDN资源 stacktape.yml 并将其原点指向Lambda URL。

1.3注册MCP工具

启动器包括演示MCP协议的示例工具:

  • 获取当前时间 --返回当前UTC时间戳。
  • 计算 --计算数学表达式。
  • 服务器信息 --公开服务器元数据的MCP资源。

在中添加您自己的工具、资源和提示 src/index.ts 使用 server.registerTool() / server.registerResource() / server.registerPrompt() API