Token导航 LogoToken导航TokenDH.com
MCP Toolsets logo
运维云端stdio官方级别未说明来源级核验

MCP Toolsets

MCP Server

一个基于FastAPI的模块化MCP服务器,提供文件系统操作、Gmail、Discord、Notion和LinkedIn等多种AI工具集,支持按需选择使用。

工具数

43

提示词数

0

GitHub Stars

0

资源数

0
AI代理FastAPI自动化

安装说明

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

作者 / 组织

Maximophone

提供方

Maximophone

最后核验

2026/5/17 20:22

快速接入

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

命令预览

pip install -r requirements.txt

详细介绍

MCP工具集

一个模块化的模型上下文协议(MCP)服务器,为文件系统操作、Gmail、Discord、Notion、LinkedIn等提供AI工具。

该服务器使用FastAPI构建,将多个工具集作为虚拟MCP端点公开,允许AI应用程序有选择地使用所需的工具。

特性

  • 虚拟MCP服务器:单个进程,不同URL路径上的多个工具集
  • 模块化工具集:系统、Gmail、Discord、Notion、LinkedIn(每个都可以独立访问)
  • 安全:API密钥认证+路径沙盒
  • 快速API:具有自动生成文档的现代异步Python框架

快速开始

1.安装依赖项

cd mcp-toolsets
pip install -r requirements.txt

2.配置

# Copy the example config
cp .env.example .env

# Edit .env with your settings
nano .env

3.跑步

python server.py

服务器启动并将每个工具集作为虚拟MCP服务器公开:

http://127.0.0.1:8765/mcp/system   → Filesystem/shell tools
http://127.0.0.1:8765/mcp/gmail    → Email tools
http://127.0.0.1:8765/mcp/discord  → Discord tools
http://127.0.0.1:8765/mcp/notion   → Notion database tools
http://127.0.0.1:8765/mcp/linkedin → LinkedIn tools

API文件:http://127.0.0.1:8765/docs

4.连接您的MCP客户端

每个工具集都有自己的端点:

工具集URL
系统http://127.0.0.1:8765/mcp/system
Gmailhttp://127.0.0.1:8765/mcp/gmail
不和谐http://127.0.0.1:8765/mcp/discord
概念http://127.0.0.1:8765/mcp/notion
领英http://127.0.0.1:8765/mcp/linkedin

配置您的MCP客户端以连接到所需的工具集。每个工具集都公开了:

  • GET /tools -列出可用工具
  • POST /execute -执行工具

配置

环境变量(通过 .env 文件):

变量默认值描述
MCP_API_KEYdev-key-12345用于身份验证的API密钥
MCP_PORT8765要收听的端口
MCP_HOST127.0.0.1要绑定的主机
MCP_BASE_DIR~ (home)文件系统操作的基本目录
MCP_ENABLED_TOOLSETSsystem以逗号分隔的已启用工具集列表
LOG_LEVELINFO日志记录级别

API

所有端点都需要通过以下方式进行身份验证 Authorization: Bearer 头球

列出可用工具集

GET /mcp/toolsets

每个工具集端点

每个工具集都有自己的端点:

GET  /mcp/{toolset}/health  - Health check
GET  /mcp/{toolset}/tools   - List tools
POST /mcp/{toolset}/execute - Execute a tool

示例-列出系统工具:

GET /mcp/system/tools

示例-执行一个工具:

POST /mcp/system/execute
Content-Type: application/json

{
  "name": "list_directory",
  "arguments": {
    "path": "/Users/me/Documents"
  }
}

传统端点(所有工具)

为了向后兼容,这些端点为所有启用的工具提供服务:

GET  /health  - Health check (all toolsets)
GET  /tools   - List all tools
POST /execute - Execute any tool

可用工具集

系统工具集(system)

工具安全描述
list_directory列出文件和目录
read_file读取带有行号的文件内容
save_file将内容保存到文件
copy_file复制或移动文件
run_command运行shell命令
execute_python执行Python代码
fetch_webpage获取URL并转换为markdown
persistent_shell持久shell会话

Gmail工具集(gmail)

需要OAuth凭据。看 Gmail设置 在......下面

工具安全描述
send_email发送电子邮件
reply_to_email在帖子中回复电子邮件
search_emails使用过滤器搜索电子邮件
get_email_content获取完整的电子邮件内容
list_recent_emails列出最近的电子邮件
list_email_attachments列出电子邮件附件
download_email_attachments下载附件

Gmail设置

  1. 创建谷歌云项目

- 首选 谷歌云控制台 - 创建新项目(或选择现有项目)

  1. 启用Gmail API

- 转到API和服务→ 图书馆 - 搜索“Gmail API”并启用它

  1. 创建OAuth凭据

- 转到API和服务→ 凭证 - 点击“创建凭据”→ “OAuth客户端ID” - 选择“桌面应用程序”作为应用程序类型 - 下载JSON文件

  1. 配置MCP服务器
   # Save credentials in project directory
   mv ~/Downloads/client_secret_xxx.json credentials.json

   # Enable gmail toolset in .env
   MCP_ENABLED_TOOLSETS=system,gmail
  1. 首次运行-OAuth流程

- 启动服务器并调用任何Gmail工具 - 将打开一个浏览器窗口供Google登录 - 授予您的应用程序权限 - token.pickle 将保存以备将来使用

Discord工具集(discord)

需要Discord机器人令牌。看 Discord设置 在......下面

工具安全描述
list_discord_channels列出可访问的频道
read_discord_messages读取频道消息
send_discord_dm发送直接消息
read_discord_dm_history读取DM历史记录
send_discord_message向频道发送消息
get_discord_user获取用户信息

Discord设置

  1. 创建Discord应用程序

- 首选 Discord开发者门户 - 点击“新建应用程序”并命名

  1. 创建机器人

- 转到应用程序中的“Bot”部分 - 点击“添加机器人” - 在“特权网关意图”下,启用: - 消息内容意图 - 服务器成员意图

  1. 获取Bot令牌

- 在Bot部分,单击“重置令牌”以获取令牌 - 复制令牌(您只能看到一次!)

  1. 邀请机器人到服务器

- 转到“OAuth2”→ “URL生成器” - 选择范围: bot - 选择权限: Read Messages/View Channels, Send Messages, Read Message History - 复制生成的URL并在浏览器中打开 - 选择您的服务器并授权

  1. 配置MCP服务器
   # Add to .env
   DISCORD_BOT_TOKEN=your-bot-token-here
   MCP_ENABLED_TOOLSETS=system,discord

概念工具集(notion)

用于与Notion数据库交互的工具-读取模式、查询行、创建/更新条目。

工具安全描述
list_databases列出与集成共享的所有数据库
get_database_schema获取数据库结构和属性
query_database从数据库查询行
query_database_filtered使用Notion筛选器语法进行查询
get_database_row按ID获取特定行
create_database_row在数据库中创建新行
update_database_row更新行属性(需要row_name才能查看)
update_database_rows一次更新多行(批量编辑)
archive_database_row存档(软删除)一行(需要row_name进行审阅)
unarchive_database_row还原已存档的行(需要row_name进行查看)
search_notion搜索数据库和页面

概念设置

  1. 创建概念集成

- 首选 我的集成 - 点击“新建集成” - 命名它(例如,“MCP服务器”) - 选择要连接的工作区 - 点击“提交”

  1. 获取集成令牌

- 在集成页面上,找到“内部集成令牌” - 点击“显示”并复制令牌(以开头 secret_)

  1. 通过集成共享数据库

- 打开要访问的每个Notion数据库 - 点击“…”→“添加连接” - 选择您的集成 - 这授予了对该数据库的集成访问权限

  1. 配置MCP服务器
   # Add to .env
   NOTION_API_KEY=secret_xxxxxxxxxxxxxxxxxxxxxxx
   MCP_ENABLED_TOOLSETS=system,notion
  1. 测试工具
   # List databases
   curl -X POST http://127.0.0.1:8765/mcp/notion/execute \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"name": "list_databases", "arguments": {}}'

LinkedIn工具集(linkedin)

与LinkedIn交互的工具——个人资料查找、人员搜索、消息传递和批量数据检索。

⚠️ 重要:这使用了一个 非官方API 反向发动机LinkedIn的内部Voyager API。执行保守的利率限制以避免账户限制。负责任地使用。
工具安全描述
get_linkedin_profile通过公共ID或URN获取配置文件
get_my_linkedin_profile获取您自己的个人资料
get_linkedin_contact_info获取联系信息(如果共享)
search_linkedin_people使用筛选器搜索人员
get_my_linkedin_connections列出你的一级关系
list_linkedin_conversations列出消息线程
get_linkedin_conversation阅读对话中的消息
send_linkedin_message发送直接消息
reply_to_linkedin_conversation回复现有帖子
batch_get_linkedin_profiles获取多个配置文件(最多20个)
get_linkedin_rate_limit_status检查剩余的每日限额

利率限制(保守默认值):

操作延迟每日限制
配置文件查找10-30s500/天
搜索30-60s100/天
消息60-180s100/天

LinkedIn设置

LinkedIn身份验证可以通过3种方式完成(按优先顺序排列):

选项1:浏览器Cookie(推荐-自动)

如果您使用Brave、Chrome、Firefox或Edge登录LinkedIn,服务器将自动提取您的会话Cookie。只要确保:

  • 您已在浏览器中登录LinkedIn
  • 浏览器正在运行(或可以访问Cookie)
  • 您正在以登录浏览器的同一用户身份运行Python

选项2:手动提取Cookie

如果自动cookie提取不起作用,您可以手动复制cookie:

  1. 在浏览器中打开LinkedIn 并确保您已登录
  1. 打开开发人员工具

- Chrome/Edge/Brave:按 F12Ctrl+Shift+I (Windows)/ Cmd+Option+I (Mac) - Firefox:按 F12Ctrl+Shift+I (Windows)/ Cmd+Option+I (Mac)

  1. 导航到Cookie

- Chrome/Edge/Brave:转到 应用 tab → 存储Cookiehttps://www.linkedin.com - Firefox:转到 存储 tab → Cookiehttps://www.linkedin.com

  1. 查找并复制这两个Cookie:
Cookie名称要复制的内容
li_at完整值(以开头的长字符串 AQ...)
JSESSIONID完整值(在引号中,如 "ajax:123456789")

> 💡 小贴士:双击值字段将其选中,然后复制。确保获得完整的值。

  1. 添加到您的 .env 文件:
   LINKEDIN_LI_AT=AQEDAQxxxxxxxxxxxxxx...
   LINKEDIN_JSESSIONID='"ajax:1234567890123456789"'

> ⚠️ 重要JSESSIONID格式:值必须包含双引号作为值的一部分。在.env中的整个内容周围使用单引号来保留它们: LINKEDIN_JSESSIONID='"ajax:..."'

选项3:用户名/密码

您也可以使用您的LinkedIn凭据进行身份验证,但如果LinkedIn要求2FA或显示CAPTCHA,则可能会失败:

# Add to .env
LINKEDIN_EMAIL=your-email@example.com
LINKEDIN_PASSWORD=your-password

启用LinkedIn工具集

# Add to .env
MCP_ENABLED_TOOLSETS=system,linkedin

测试身份验证

运行测试脚本以验证您的LinkedIn设置:

python test_linkedin_auth.py

这将检查:

  • 环境变量
  • 浏览器cookie可用性
  • 实际API连接
  • 您的个人资料信息

故障排除

“LinkedIn身份验证失败”

  • 确保您已在浏览器中登录LinkedIn
  • 尝试关闭所有浏览器窗口并重新登录LinkedIn
  • 如果自动提取失败,请使用选项2(手动Cookie)
  • 检查您的Cookie是否未过期(通常持续数周)

用户名/密码出现“挑战”或2FA错误

  • LinkedIn可能需要验证新登录
  • 改用基于cookie的身份验证(选项1或2)

速率限制错误

  • 该工具集强制执行保守的每日限制
  • 使用 get_linkedin_rate_limit_status 检查剩余配额
  • 午夜重置限额

安全

  1. API密钥验证:所有请求都必须包含有效的API密钥
  2. 路径沙盒:所有文件系统操作仅限于 MCP_BASE_DIR
  3. 安全标志:标记的工具 safe=False 需要在插件中进行用户确认

发展

添加新工具集

  1. 创建 toolsets/my_toolset.py:
from .base import tool, RegisteredTool

@tool(
    description="My awesome tool",
    param1="Description of param1",
    safe=True
)
def my_tool(param1: str) -> str:
    return f"Result: {param1}"

TOOLS = [my_tool]
  1. 注册 toolsets/__init__.py:
from . import my_toolset
register_toolset("my_toolset", my_toolset.TOOLS)
  1. 启用 .env:
MCP_ENABLED_TOOLSETS=system,my_toolset

在发展中奔跑

uvicorn server:app --reload --host 127.0.0.1 --port 8765

项目结构

mcp-toolsets/
├── server.py              # FastAPI main server
├── config.py              # Configuration loading
├── requirements.txt       # Python dependencies
├── test_linkedin_auth.py  # LinkedIn auth test script
├── .env.example        # Environment template
├── .env                # Your local config (gitignored)
├── credentials.json    # Gmail OAuth credentials (gitignored)
├── token.pickle        # Gmail OAuth token (gitignored)
├── data/               # Runtime data (gitignored)
│   └── rate_limits/    # LinkedIn rate limit state
├── toolsets/
│   ├── __init__.py     # Toolset registry
│   ├── base.py         # @tool decorator
│   ├── system.py       # Filesystem/shell tools
│   ├── gmail.py        # Gmail tools
│   ├── discord.py      # Discord tools
│   ├── notion.py       # Notion database tools
│   └── linkedin.py     # LinkedIn tools
├── integrations/
│   ├── __init__.py
│   ├── gmail_client.py    # Gmail API client
│   ├── discord_client.py  # Discord bot client
│   ├── notion_client.py   # Notion API client
│   └── linkedin_client.py # LinkedIn API client
└── utils/
    ├── __init__.py
    └── rate_limiter.py    # Rate limiting utilities

兼容客户端

此MCP服务器可与支持模型上下文协议的任何客户端配合使用:

  • 黑曜石AI插件 -基于AI的黑曜石笔记处理
  • 任何其他兼容MCP的AI客户端

许可证

麻省理工学院

目录标签

目录标签

AI代理FastAPI自动化AI工具集Python本地部署模块化服务多平台集成自动化工具

接入字段

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

stdio

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

oauth

工具数量(toolCount,工具数)

43

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP