Token导航 LogoToken导航TokenDH.com
MCP go lambda logo
AI代理未说明官方级别未说明来源级核验

MCP go lambda

MCP Server

一个基于Go语言的Model Context Protocol (MCP)服务器,部署在AWS Lambda上,支持自动工具注册和扩展。

工具数

7

提示词数

0

GitHub Stars

1

资源数

0
服务器部署GoGo语言

安装说明

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

作者 / 组织

jackine08

提供方

jackine08

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

MCP Go Lambda服务器

将使用Go创建的Model Context Protocol(MCP)服务器部署到AWS Lambda的项目。

主要功能

  • 🚀 使用官方Go SDK:基于MCP官方go-sdk v1.1.0
  • 🔧 自动注册工具:使用Self-registering pattern添加一个文件即可自动注册
  • 📦 AWS Lambda部署:通过API Gateway+Lambda支持HTTP Transport
  • 🎯 简单的扩展:使用基于通用的Register函数以最少的代码添加Tool

项目结构

mcp-go-lambda/
├── cmd/
│   └── lambda/           # Lambda 엔트리포인트
│       └── main.go       # 애플리케이션 시작점
├── internal/
│   ├── handler/          # Lambda 핸들러
│   │   └── lambda.go     # API Gateway 요청 처리
│   ├── server/           # MCP 서버 팩토리
│   │   └── server.go     # 서버 생성 및 설정
│   └── tools/            # Tool 구현 (자동 등록)
│       ├── registry.go   # Tool 레지스트리 (제네릭)
│       ├── calculator.go # 계산기 툴
│       └── string.go     # 문자열 조작 툴
├── cdk/                  # AWS CDK 인프라 코드 (Python)
│   ├── app.py
│   ├── stacks/
│   │   └── mcp_lambda_stack.py
│   └── events/           # 테스트 이벤트
├── lambda_dist/          # 빌드 결과물
├── Makefile
├── go.mod
└── README.md

包说明

  • cmd/lambda:Lambda函数的入口点
  • 内部/处理程序:将API Gateway事件转换为MCP协议
  • 内部/服务器:创建MCP服务器和管理工具注册
  • 内部/工具:Tool实现(自动注册为init()函数)

🛠️ 实现的工具

计算器(Calculator)

  • 添加:加两个数字
  • :两个数字相乘
  • 减去:减去两个数字
  • 分割:除以两个数字

字符串操作(String Manipulation)

  • to_upper:将文本转换为大写
  • to_lower:将文本转换为小写
  • 反向:反转文本

🚀 添加新工具

得益于Self-registering pattern,非常简单!

1. internal/tools/ 在下面创建新文件

// internal/tools/mytool.go
package tools

import (
	"context"
	"github.com/modelcontextprotocol/go-sdk/mcp"
)

// Input 타입 정의
type MyInput struct {
	Text string `json:"text" jsonschema:"입력 텍스트"`
}

// Tool 함수 구현
func MyNewTool(ctx context.Context, req *mcp.CallToolRequest, input MyInput) (
	*mcp.CallToolResult,
	map[string]interface{},
	error,
) {
	// 로직 구현
	result := "처리된 결과: " + input.Text
	
	return &mcp.CallToolResult{
		Content: []mcp.Content{
			&mcp.TextContent{Text: result},
		},
	}, map[string]interface{}{"result": result}, nil
}

// init()에서 자동 등록
func init() {
	Register("my_new_tool", "내 새로운 도구 설명", MyNewTool)
}

2.构建和部署

make deploy

结束! server.go不需要修改或其他文件。

工作原理

  1. init()函数:Go包导入时自动运行
  2. Register()通用函数:自动推断Handler函数的类型并注册
  3. 注册所有工具():创建服务器时调用一次以注册所有工具

此模式是Go标准库(database/sql, image 包)中使用的方法相同。

构建和部署

1.设置AWS Credentials

.env 将AWS credentials添加到文件:

AWS_ACCESS_KEY_ID=your-access-key-id
AWS_SECRET_ACCESS_KEY=your-secret-access-key
AWS_DEFAULT_REGION=ap-northeast-2

2.使用Makefile(建议)

# 빌드만
make build

# 빌드 + 배포
make deploy

# 스택 삭제
make destroy

# 테스트
make test

# 모든 단계 (clean, deps, test, build)
make all

3.手动构建(必要时)

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o lambda_dist/bootstrap cmd/lambda/main.go

测试

# 단위 테스트 실행
go test ./...

# 특정 패키지 테스트
go test ./internal/handler

# 커버리지 포함
go test -cover ./...

🌐 API端点

部署后的API网关端点:

POST https://yhj0gi980j.execute-api.ap-northeast-2.amazonaws.com/dev/mcp

HTTP Transport功能

  • 内存传输:支持用于会话管理的stateless Lambda
  • JSON-RPC 2.0:符合MCP协议标准
  • API网关集成:通过REST API外部访问

使用示例

# Initialize (서버 연결 초기화)
curl -X POST "https://yhj0gi980j.execute-api.ap-northeast-2.amazonaws.com/dev/mcp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": {
        "name": "test-client",
        "version": "1.0.0"
      }
    }
  }'

# Tools List (사용 가능한 도구 목록)
curl -X POST "https://yhj0gi980j.execute-api.ap-northeast-2.amazonaws.com/dev/mcp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {}
  }'

# Tool Call (도구 실행 - 덧셈 예시)
curl -X POST "https://yhj0gi980j.execute-api.ap-northeast-2.amazonaws.com/dev/mcp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "add",
      "arguments": {
        "a": 42,
        "b": 58
      }
    }
  }'

# 문자열 뒤집기 예시
curl -X POST "https://yhj0gi980j.execute-api.ap-northeast-2.amazonaws.com/dev/mcp" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "reverse",
      "arguments": {
        "text": "Hello World"
      }
    }
  }'

📝 开发

本地测试

# 테스트 이벤트로 로컬 실행
cd cdk/events
curl -X POST "http://localhost:9000/2015-03-31/functions/function/invocations" \
  -d @initialize-request.json

体系结构模式

这个项目 自注册模式使用:

  1. 每个Tool init() 在函数中自动注册
  2. Register() 通用函数处理类型推论
  3. 中央注册表管理所有工具
  4. 添加新工具时不需要修改其他文件

这是Go标准库(database/sql, image)相同的模式。

许可证

MIT许可证

参考

目录标签

目录标签

服务器部署GoGo语言MCP协议本地部署AWSLambda工具扩展

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP