Token导航 LogoToken导航

MCP Server · 安全风控

MCP Server LLM Assistant

一个基于FastAPI的多功能个人助手服务,提供电子邮件、日历管理、PDF处理、网页搜索、披萨订购和自由问答等功能,支持本地和OpenAI处理,并具备隐私保护机制。

stdio官方级别未说明来源级核验工具 9
FastAPI隐私保护安全

快速开始

作者 / 组织
SaiVSrini
提供方
SaiVSrini

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Server LLM Assistant 属于安全风控类 MCP Server,公开资料标注 9 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

安全风控

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

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

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

个人MCP助手

这个项目是一个包含许多辅助工具(邮件、日历、PDF阅读、网页搜索、披萨订购和开放式问答)的FastAPI服务器。每个请求首先会经过一个隐私过滤器,该过滤器决定请求是留在您的机器上还是可以发送到OpenAI(仅当设置了API密钥且文本看起来安全时,才会使用OpenAI)。

高级流程

  1. 环境设置从(某处)读取 .env (由...加载 python-dotenv 或者通过你的shell(命令行界面)。
  2. mcp_server.py 启动FastAPI,构建一个共享(实例/服务) LocalModel,并将其分发给每个连接器。
  3. 每个HTTP端点要么调用正确的连接器,要么询问 LocalModel 帮忙。
  4. LocalModel 使用简单模式检查文本。私有文本保持本地并发送至LLaMA。如果存在API密钥,公共文本可以发送至OpenAI。
  5. 在发送任何数据之前,会对结果进行清理,以隐藏敏感数据。

组件

  • local_model.py — 处理所有大型语言模型(LLM)调用。它可以与Ollama、llama.cpp、transformers或OpenAI进行交互。它还能识别私有数据,将其隐藏,并将自然文本转化为操作。
  • mcp_server.py — 一个FastAPI应用程序,声明每个端点并插入连接器。
  • connectors/ — 实际技能:

- emailer.py 发送Gmail邮件。 - scheduler.py 创建Google日历事件。 - pdf_processor.py 使用PyPDF2读取PDF文件并隐藏私有文本。 - web_searcher.py 尝试使用Google自定义搜索、Serper.dev、Google网页抓取,然后是DuckDuckGo。 - pizza_orderer.py 通过与Domino's(达美乐披萨)的交流 pizzapi.

  • frontend/ — 使用FastAPI提供的简单网页用户界面,用于快速测试。
  • scripts/assistant_cli.py — 一个命令行辅助工具,用于发布到 /assistant/command.
  • test_endpoints.py 和 test_dependencies.py — 基本脚本,用于测试API并检查导入内容。

详细的数据流

整体生命周期(适用于CLI、前端或任何HTTP客户端)
  1. 用户输入请求(例如,“明天下午4点与Alex预约会议”)。
  2. 客户端向FastAPI服务器发送请求。命令行界面(CLI)和前端使用 /assistant/command; curl 可以调用任何端点。
  3. mcp_server.py 接收JSON。一个共享的 LocalModel 并且所有连接器均已装载完毕。
  4. 服务器选择合适的处理程序。 /assistant/command 使用下面更长的流程。像这样的简单路线: /email 或者 /search 在快速进行隐私检查后,给他们联系人打电话。
  5. 每个处理器返回一个Python字典。 sanitize_data 在响应离开服务器之前,隐藏或移除任何私人细节。
  6. FastAPI 将清理后的 JSON 返回给调用者。
/assistant/command 一步一步地
  1. 提示已发送至 LocalModel.interpret_instruction。
  2. 正则表达式用于查找私密标记,如密码、令牌、电子邮件、卡片信息和出生日期。
  3. 如果出现私有标记,提示信息将直接发送到本地的LLaMA运行程序。如果没有出现私有标记,则明显的标识符将被占位符替换(例如 [EMAIL_0]并再次检查。
  4. 安全提示来自OpenAI(当 OPENAI_API_KEY (已设置)。私有提示保留在本地模型中。两个模型都必须返回描述所请求工作的有效JSON。
  5. JSON被展平成一个列表 {action, payload} 条目加上任何澄清问题。
  6. 每个动作依次执行:

- Emailer.send for send_email - Scheduler.schedule_meeting for schedule_meeting - WebSearcher.search for search_web - PDFProcessor.process 结合;与……一起 LocalModel.answer_from_documents for pdf_question - PizzaOrderer.place_order for order_pizza - LocalModel.complete 或者 answer_from_documents for answer_question

  1. 连接器可以呼叫 LocalModel 再次说明,如果他们需要在保持数据本地化的同时(例如,PDF问答形式)获得另一个答案。
  2. 缺少的细节(如未填写收件人、未指定开始时间等)会导致需要澄清的问题,而非错误。
  3. 结果和澄清贯穿始终 sanitize_data该功能隐藏电子邮件、支付信息、PDF文本及类似字段。
  4. 最终清理后的JSON被返回给调用者。
直接任务端点
  • /ask 使用 LocalModel.complete 对于简单的问题和转换到 answer_from_documents 当提供上下文时。
  • /email 并且 /email/send 打电话 Emailer.send 编辑完消息正文后。
  • /meeting 并且 /meeting/schedule 将时间转换为 datetime 对象,验证范围,并将请求转发至 Scheduler.schedule_meeting。
  • /pdf 接受一个Base64字符串,对其进行解码,并提取文本 PDFProcessor,编辑文本,并返回安全版本。
  • /pdf/query 从磁盘读取文件,提取文本,询问 LocalModel.answer_from_documents并编辑回复。
  • /assistant/pdf_question 上传PDF文件,提取文本,并运行相同的问答辅助工具。
  • /web/search 并且 /search 对查询进行隐私检查,然后调用 WebSearcher 它依次尝试使用Google自定义搜索、Serper.dev、网页抓取和DuckDuckGo。
  • /pizza 并且 /pizza/order 在本地验证Domino's订单数据,清理特殊说明,并在启用实时模式时提交订单。
  • /health 回报;收益 {"status": "ok"} 不接触大型语言模型(LLM)。

本地计算与OpenAI计算

LocalModel 查找以下环境变量以初始化本地模型:

  • LLAMA2_PROVIDER — ollama, llama_cpp或者 transformers。
  • LLAMA2_MODEL — Ollama的模型名称。
  • LLAMA2_MODEL_PATH, LLAMA_CPP_MODEL_PATH或者 TRANSFORMERS_MODEL_PATH — 本地模型权重的路径。
  • LLAMA_CPP_CTX — 可选的上下文窗口大小用于 llama.cpp。

如果提示或文档看起来包含私密信息(如密码、令牌、社会保险号、卡号等), LocalModel 始终使用本地后端,从不将其发送给OpenAI。公开文本在以下情况下可以发送给OpenAI: OPENAI_API_KEY 已设置。可选的OpenAI设置:

  • OPENAI_API_KEY
  • OPENAI_PROJECT
  • OPENAI_ORG 或者 OPENAI_ORGANIZATION
  • OPENAI_MODEL (默认为 gpt-3.5-turbo)

连接器凭据

存储秘密于 .env (从不提交生产环境的值)

  • Gmail和Google日历: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN,可选地 GOOGLE_CALENDAR_SCOPES.
  • Google自定义搜索: SEARCH_API_KEY, SEARCH_CX。
  • Serper.dev: SERPER_API_KEY。
  • 点披萨: PIZZA_LIVE_MODE, PIZZA_CARD_NUMBER, PIZZA_CARD_EXPIRATION, PIZZA_CARD_CVV, PIZZA_BILLING_POSTAL_CODE。

get_google_refresh_token.py 启动本地OAuth流程以刷新Google令牌。所有脚本均期望 python-dotenv 以便 .env 文件自动读取。

运行服务器

pip install -r requirements.txt
uvicorn mcp_server:app --reload

当服务器启动时,它会读取 .env构建每个连接器,并在以下位置公开API http://localhost:8000静态前端托管于 / 如果 frontend/ 文件夹存在。

在本地使用Ollama

  1. 安装Ollama并下载你想要的模型(例如 ollama run llama2)。
  2. (可选但建议)在您的虚拟环境中安装Python客户端: pip install ollama。
  3. 放置 LLAMA2_PROVIDER=ollama, LLAMA2_MODEL=llama2,和 OLLAMA_HOST 翻译成中文是:进入你的 .env。
  4. 启动 Ollama 守护进程ollama serve在运行 FastAPI 之前,如果 FastAPI 是在 Docker 或 WSL 中运行的,请将 Ollama 绑定到容器可以访问的地址,并指向该地址 OLLAMA_HOST 到那个地址。
  5. 如果守护进程已停止,您将在API回复和前端横幅中看到“无法初始化本地LLaMA2运行时…”。
  6. 打电话 POST /admin/local_model/initialize 预热模型并确认其已准备好。

使用命令行界面(CLI)

python scripts/assistant_cli.py "schedule a meeting with alice@example.com tomorrow at 3pm"

旗帜:

  • --search 称呼为 /search 终端点。
  • --pdf-question 带有一个或多个 --pdf 文件要击中(或处理) /assistant/pdf_question.
  • --pretty 对JSON响应进行格式化打印。

测试与诊断

  • python test_dependencies.py 导入所有所需的包,并打印出检测到的版本。
  • python test_endpoints.py 假设FastAPI服务器在本地运行,并对主要的端点进行测试。除非(特定条件满足),否则跳过披萨测试 PIZZA_LIVE_MODE 是真的。
  • python -m compileall . 这是一种快速确认所有模块都能编译的方法。

实施说明

  • PDF提取功能现已防范返回的页面 None 来自 extract_text()。
  • 在从端点和连接器返回之前,敏感字符串会始终被屏蔽处理。
  • 该代码库避免使用内联注释,而是采用清晰的函数和变量名称,因此代码本身即可保持可读性,无需额外注释。
  • 如果前端显示“本地模型状态:离线 — 未找到Ollama Python客户端…”,请安装 ollama Python包(或确保 OLLAMA_HOST (可以访问)并重启服务器。

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

个人助手Python本地部署隐私保护多任务处理本地模型FastAPI

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

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

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

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

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

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP World · 本页

9stdio有1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

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

常见问题

5 条

MCP Server LLM Assistant 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Server LLM Assistant 怎么在 Claude Desktop、Cursor 里配置?

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

MCP Server LLM Assistant 收费吗?

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

MCP Server LLM Assistant 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

MCP Server LLM Assistant 支持哪些客户端?

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

来源信息

继续浏览同类 MCP