Token导航 LogoToken导航

MCP Server · 运维云端

Sameet Assignment

一个基于FastAPI构建的完整、生产就绪的MCP服务器,提供数据获取、实时更新和历史查询功能。

stdio官方级别未说明来源级核验工具 0
FastAPIWebSocket实时数据

快速开始

作者 / 组织
sameetjathan
提供方
sameetjathan
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Sameet Assignment 属于运维云端类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

MCP服务器-模型上下文协议服务器

一个完整的、生产就绪的MCP(模型上下文协议)服务器,使用FastAPI构建,具有数据获取、通过WebSockets实时更新和历史数据查询的功能。服务器遵循干净的架构原则,具有全面的测试覆盖率。

特性

  • 数据获取端点:按ID检索最新数据、项目和筛选数据
  • 实时更新:WebSocket支持实时数据更新
  • 历史查询:按日期范围或项目ID查询过去的记录
  • 缓存层:内存中的LRU缓存可提高性能
  • 错误处理:结构化JSON错误响应
  • 综合录井:所有操作的详细日志记录
  • 全面测试覆盖:pytest的测试覆盖率为70-90%

建筑

该项目遵循干净的模块化架构:

mcp-server/
├── cache/              # Caching utilities (LRU cache)
├── errors/             # Custom exception classes
├── models/             # Internal data models
├── routers/            # API route handlers
│   ├── data.py        # Data fetching endpoints
│   ├── realtime.py    # WebSocket real-time updates
│   └── historical.py  # Historical query endpoints
├── schemas/            # Pydantic schemas for validation
├── services/           # Business logic layer
├── tests/              # Comprehensive test suite
├── utils/              # Utility functions and helpers
└── main.py             # FastAPI application entry point

关键组件

  1. 路由器:处理HTTP请求和WebSocket连接
  2. 服务:包含业务逻辑,与路由处理程序分开
  3. 模型:内部数据结构
  4. 模式:用于请求/响应验证的Pydantic模型
  5. 缓存:实现LRU缓存以优化性能
  6. 错误:具有结构化错误响应的自定义异常类

安装说明

先决条件

  • Python 3.8或更高版本
  • pip(Python包管理器)

安装

  1. 克隆或导航到项目目录:
   cd sameet
  1. 创建虚拟环境(推荐):
   python -m venv venv

   # On Windows:
   venv\Scripts\activate

   # On Linux/Mac:
   source venv/bin/activate
  1. 安装依赖项:
   pip install -r requirements.txt

运行服务器

发展模式

在启用自动重新加载的情况下运行服务器:

python main.py

或者直接使用uvicorn:

uvicorn main:app --reload --host 0.0.0.0 --port 8000

服务器将于启动 http://localhost:8000

生产模式

uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4

API 文档

服务器运行后,访问交互式API文档:

  • Swagger 用户界面: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

运行测试

运行所有测试

pytest

使用覆盖率报告运行测试

pytest --cov=. --cov-report=term-missing --cov-report=html

这将:

  • 运行所有测试
  • 在终端中生成覆盖报告
  • 在中创建HTML覆盖率报告 htmlcov/index.html
  • 确保覆盖率至少为70%

运行特定测试文件

# Test data endpoints
pytest tests/test_data_endpoints.py

# Test cache
pytest tests/test_cache.py

# Test services
pytest tests/test_data_service.py

# Test real-time updates
pytest tests/test_realtime_endpoints.py

# Test historical queries
pytest tests/test_historical_endpoints.py

口头运行测试

pytest -v

API使用示例

数据获取端点

获取最新数据项
curl http://localhost:8000/api/v1/data/latest?limit=10

答复:

{
  "success": true,
  "data": [
    {
      "id": "item_abc123",
      "name": "Temperature Sensor",
      "value": 23.5,
      "category": "sensor",
      "timestamp": "2024-01-15T10:30:00Z",
      "metadata": {"unit": "celsius"}
    }
  ],
  "count": 1,
  "message": "Retrieved 1 latest items"
}
按ID获取项目
curl http://localhost:8000/api/v1/data/item/item_abc123
筛选数据项
curl -X POST http://localhost:8000/api/v1/data/filter \
  -H "Content-Type: application/json" \
  -d '{
    "category": "sensor",
    "min_value": 0.0,
    "max_value": 100.0,
    "limit": 50
  }'
创建新数据项
curl -X POST http://localhost:8000/api/v1/data/item \
  -H "Content-Type: application/json" \
  -d '{
    "name": "New Sensor",
    "value": 42.5,
    "category": "sensor",
    "metadata": {"location": "room_1"}
  }'

历史查询

按日期范围查询历史数据
curl -X POST http://localhost:8000/api/v1/historical/query \
  -H "Content-Type: application/json" \
  -d '{
    "start_date": "2024-01-01T00:00:00Z",
    "end_date": "2024-01-31T23:59:59Z",
    "category": "sensor",
    "limit": 100
  }'
获取特定项目的历史记录
curl http://localhost:8000/api/v1/historical/item/item_abc123?limit=1000

实时更新

通过WebSocket连接

使用Python:

import asyncio
import websockets
import json

async def connect_websocket():
    uri = "ws://localhost:8000/api/v1/realtime/ws"
    async with websockets.connect(uri) as websocket:
        # Receive welcome message
        message = await websocket.recv()
        print(f"Received: {message}")
        
        # Send ping
        await websocket.send(json.dumps({"type": "ping"}))
        response = await websocket.recv()
        print(f"Pong: {response}")

asyncio.run(connect_websocket())
广播更新
curl -X POST http://localhost:8000/api/v1/realtime/broadcast \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Live Update",
    "value": 99.9,
    "category": "broadcast",
    "metadata": {"source": "api"}
  }'

所有连接的WebSocket客户端都将自动接收更新。

假设和设计决策

  1. 内存存储:为了简单起见,服务器使用内存存储。在生产环境中,这应该被持久数据库(PostgreSQL、MongoDB等)所取代。
  1. LRU缓存:缓存使用最近最少使用(LRU)驱逐策略,默认容量为1000个项目。这是可以配置的。
  1. WebSocket实时更新:使用WebSockets实现实时更新。服务器发送事件(SSE)可以作为单向通信的替代方案。
  1. 错误处理:所有错误都返回格式一致的结构化JSON响应:
   {
     "success": false,
     "error": "ERROR_CODE",
     "message": "Human-readable message",
     "details": {}
   }
  1. 日志记录:日志同时写入控制台和文件(logs/mcp_server.log).可以配置日志级别。
  1. 类型提示:所有代码都使用Python类型提示,以获得更好的代码质量和IDE支持。
  1. PEP8合规性:代码遵循PEP8风格指南。
  1. 测试覆盖率:测试的目标是70-90%的覆盖率,包括:

- 服务和公用设施的单元测试 - API端点的集成测试 - WebSocket连接测试 - 错误处理测试 - 缓存行为测试

配置

环境变量

您可以使用环境变量配置服务器:

  • LOG_LEVEL:日志记录级别(调试、信息、警告、错误)-默认值:信息
  • CACHE_CAPACITY:LRU缓存容量-默认值:1000
  • PORT:服务器端口-默认值:8000
  • HOST:服务器主机-默认值:0.0.0.0

日志记录配置

日志记录已在中配置 utils/logging_config.py日志被写入:

  • 控制台(stdout)
  • 文件: logs/mcp_server.log (如果已配置)

发展

编码结构

  • 业务逻辑:所有业务逻辑都在 services/ 目录,保持路由精简
  • 验证:使用Pydantic模式进行请求/响应验证
  • 错误处理:具有自定义异常的集中错误处理
  • 缓存:可轻松替换的透明缓存层

添加新端点

  1. 在中创建架构 schemas/ 如有需要
  2. 添加业务逻辑 services/data_service.py 或创建新服务
  3. 在相应的路由器文件中添加路由处理程序
  4. 在中编写测试 tests/
  5. 更新API文档(从文档字符串自动生成)

故障排除

端口已在使用中

如果端口8000已在使用中:

uvicorn main:app --port 8001

导入错误

确保您位于项目根目录中,并且虚拟环境已激活。

测试失败

确保安装了所有依赖项:

pip install -r requirements.txt

许可证

本项目按原样提供,用于教育和发展目的。

贡献

贡献时:

  1. 遵循PEP8风格指南
  2. 为所有函数添加类型提示
  3. 为新功能编写测试
  4. 更新文档
  5. 确保测试覆盖率保持在70%以上

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

FastAPI本地部署WebSocket实时数据历史查询缓存优化

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Sameet Assignment

MCP World · 本页

0stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Sameet Assignment 怎么安装?

公开资料给出的安装命令是 python -m venv venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Sameet Assignment 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Sameet Assignment 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Sameet Assignment 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Sameet Assignment 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP