数据处理服务器

一个轻量级的FastMCP服务器,提供数据处理和数值计算功能,支持无状态HTTP传输。

  • by ardhiee
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ardhiee/lamtat-mcp-server

使用说明

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/<team>/ 在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_NAME
  • AWS_REGION (或 AWS_DEFAULT_REGION)
  • BEDROCK_REGION (默认为 AWS_REGION)
  • BEDROCK_MODEL_ID
  • OPENSEARCH_ENDPOINT
  • OPENSEARCH_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进行部署

  1. 确保安装了Copilot CLI并配置了AWS凭据。
  2. 初始化(如果已经完成,请跳过):
    copilot init --app lamtat-mcp --name lamtat-mcp-server --type "Load Balanced Web Service" --dockerfile Dockerfile
    
  3. 部署,例如 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 ....