lamtat mcp服务器
一个小型FastMCP服务器,展示了两个示例工具-- process_data (资源获取+摘要)和 multiply (数字乘积)——配置为无状态HTTP传输。
代码
from fastmcp import FastMCP, Context
mcp = FastMCP(
name="lamtat-mcp-server",
host="0.0.0.0",
port=6565,
stateless_http=True,
json_response=True,
)
@mcp.tool
async def process_data(uri: str, ctx: Context):
await ctx.info(f"Processing {uri}...")
data = await ctx.read_resource(uri)
summary = await ctx.sample(f"Summarize: {data.content[:500]}")
return summary.text
@mcp.tool
def multiply(a: float, b: float) -> float:
return a * b
mcp.run("streamable-http")存储库保持了一个薄包装(server.py)因此,您可以将服务器作为模块或容器发货,并通过环境变量配置主机/端口。
store_docs工具
使用 store_docs 要上载一个或多个文档,请将它们存储在 raw// 在S3中,然后是chunk,用Bedrock-Cohere嵌入,并将这些chunk索引到OpenSearch中:
@mcp.tool
async def store_docs(team: str, files: list[dict[str, Any]], ctx: Context):
...提供a files 列表;对于单文件上传,请提供一个列表 {"filename", "content_base64"} 条目(可选 content_type, uploaded_by, allowed_teams, tags, repo, path).每个块都通过Bedrock-Cohere模型嵌入,并写入配置的OpenSearch索引。
所需的环境变量:
S3_BUCKET_NAMEAWS_REGION(或AWS_DEFAULT_REGION)BEDROCK_REGION(默认为AWS_REGION)BEDROCK_MODEL_IDOPENSEARCH_ENDPOINTOPENSEARCH_INDEX- 可选:
CHUNK_SIZE,CHUNK_OVERLAP
在本地运行
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .
lamtat-mcp-server环境变量:
APP_NAME–显示名称(默认lamtat-mcp-server)HOST–绑定地址(默认0.0.0.0)PORT–侦听端口(默认6565)
容器
docker build -t lamtat-mcp-server:latest .
docker run --rm -p 6565:6565 lamtat-mcp-server:latest使用AWS Copilot进行部署
- 确保安装了Copilot CLI并配置了AWS凭据。
- 初始化(如果已经完成,请跳过):
copilot init --app lamtat-mcp --name lamtat-mcp-server --type "Load Balanced Web Service" --dockerfile Dockerfile- 部署,例如
test:
copilot env init --name test --profile default --region us-east-1
copilot deploy --name lamtat-mcp-server --env test舱单在 copilot/lamtat-mcp-server/manifest.yml 使用默认的FastMCP路由公开端口6565。
复制脚本
scripts/deploy.sh引导app/env(如果需要)并部署服务scripts/destroy.sh–删除服务、环境和应用程序
对于x86上的ECS(Fargate),确保为以下对象构建映像 linux/amd64Copilot通过清单平台设置处理此问题;用于手动构建 docker build --platform linux/amd64 ....
