使用说明
MCP工作区查找器(PoC)
Google Drive、Slack、GitHub 的Model Context Protocol (MCP) 通过搜索横断面CLI 的,之PoC。不使用容器,只在本地运行Typer/Rich 基本REPL 和非交互命令。
前提条件
- 在主机上Python 3.10 已安装以上内容(例如:
pyenv的3.10系)。 - Poetry 的规格化距离的幂函数
pipx install poetry来修改标记元素的显示属性。 - 仅假定本地环境。Docker/不支持容器。
初始设置
- 将显示clone 导航到目录。
- Poetry 的Python 3.10+ 的规格化距离的幂函数
poetry env use python3.10)。 - 安装依赖关系:
poetry install。 - 创建环境文件:
cp .env.example .env至少OPENAI_API_KEY,SLACK_USER_TOKEN,GITHUB_TOKEN,DRIVE_TOKEN_PATH(OAuth 标记文件的路径)。机密信息保持在本地.env和token.json啊gitignore 完成。.env啊 文件存在 单击功能区上--mock未指定、ALLOW_REAL=1、servers.yaml的mode: real中所述修改相应参数的值。 - MCP 部署服务器(Slack/GitHub/Drive)
servers.yaml的设置(详情请参阅“MCP服务器的安装”)。即使令牌或验证文件的路径与默认路径不同servers.yaml进行调试。
MCP 安装服务器
CLI 独立于每个服务MCP 将服务器作为子进程启动。使用以下方法之一准备服务器servers.yaml 来定义自定义外观。
Slack MCP服务器(Go製)
- Go 1.21 准备以上内容。如果未导入macOS 那么
brew install go、Ubuntu 那么sudo apt-get install golang用等放入。go version确认1.21以上,必要的话export PATH="$(go env GOPATH)/bin:$PATH"的~/.zshrc等追记~/go/bin的PATH 贯彻。 - 安装:
go install github.com/korotovsky/slack-mcp-server/cmd/slack-mcp-server@latest - 确定二进制位置:
$(go env GOPATH)/bin/slack-mcp-server(通常是~/go/bin)。GitHub Releases 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。 servers.yaml的,之slack.exec中所述方法的备选方法。
GitHub MCP服务器(TypeScript製)
- Node.js 18+ 准备。
- 建议:npx 执行最新操作
npx -y @modelcontextprotocol/server-githubpip install github-mcp-server像...一样的PyPI 因为包不存在npm 进行动态观察时的轴心点。
- 如果想通过定期使用高速启动,则全局安装
npm install -g @modelcontextprotocol/server-github的mcp-server-github因为进入了servers.yaml的,之github.exec的mcp-server-github指定(或绝对路径)。 - 验证:PAT 的
GITHUB_TOKEN将条目添加到文档注册表CLI 也GITHUB_TOKEN),模板名称将采用不同的格式。servers.yaml的env:中所述修改相应参数的值。 - 例:
servers.yaml的npx 使用时github: exec: npx args: - -y - "@modelcontextprotocol/server-github" env: GITHUB_TOKEN: ${GITHUB_TOKEN}
Google Drive MCP Server (Node 制)
- Node.js 18+ 准备。
- 执行方法有两种:
- 全局安装:
npm install -g @modelcontextprotocol/server-gdrive之后servers.yaml的exec: server-gdrive视为。 - npx 実行(推奨・更新追従が容易):
servers.yaml设定如下。exec: npx args: - -y - "@modelcontextprotocol/server-gdrive"
- 全局安装:
- 首次启动前OAuth 在流程中
token.json中所述修改相应参数的值。GDRIVE_OAUTH_PATH=$GOOGLE_CREDENTIALS_PATH GDRIVE_CREDENTIALS_PATH=$DRIVE_TOKEN_PATH npx -y @modelcontextprotocol/server-gdrive auth在浏览器中允许后保存的secrets/token.json的DRIVE_TOKEN_PATH中所述修改相应参数的值。
実环境用の通信情报の取得手顺
ALLOW_REAL=1 且 --mock 未指定的最小烟雾(搜索API 进行动态观察时的轴心点。获取后 .env 和 servers.yaml 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
-
Slack(用户令牌/xoxp-)
- https://api.slack.com/apps创建新的应用程序(可从scratch)。
- OAuth和权限 → 用户令牌范围 的
search:read,channels:history,groups:history,im:history,users:read中所述修改相应参数的值。 - 安装到工作区 查看项目中可用的所有族User OAuth Token(
xoxp-),然后单击.env的SLACK_USER_TOKEN=<xoxp-...>缺少支持的问题。 - 任意:
curl -H "Authorization: Bearer $SLACK_USER_TOKEN" "https://slack.com/api/search.messages?query=smoke"在200/ok:true确认后通信准备完成。
-
GitHub (PAT / repo 仅读取)
- GitHub→ 设置 → 开发人员设置 → 个人访问令牌 中描述的相应参数的值。
- Fine-grained 是:目标org/repo 的规格化距离的幂函数Repository permissions 的 内容:只读, 元数据:只读, 问题/拉取请求:只读 设定为程度。
- Classic 如果:
repo授予范围(不需要其他)。
- 已提交的令牌(
ghp_或github_pat_以…开头.env的,之GITHUB_TOKEN中选择所需的墙类型。
- GitHub→ 设置 → 开发人员设置 → 个人访问令牌 中描述的相应参数的值。
-
谷歌云端硬盘(OAuth令牌.json)
- Google Cloud Console 在中创建项目,然后单击OAuth 设置同意画面(Internal/External中的任一个)。
- 「API 和服务-在库中 Google Drive API 中所述修改相应参数的值。
- 认证情报 从OAuth 客户机ID(应用程序类型:桌面),下载的客户端密码
secrets/credentials.json中选择所需的墙类型。 .env的GOOGLE_CREDENTIALS_PATH=secrets/credentials.json、DRIVE_TOKEN_PATH=secrets/token.json选项卡页面上创建或编辑条目servers.yaml中描述的相应参数的值。- 只有第一次在浏览器中实施同意流程
token.json来定义自定义外观。modelcontextprotocol的,之PyPI 版中有gdrive 因为不包含服务器,所以公式Node 版本@modelcontextprotocol/server-gdrive使用。示例:GDRIVE_OAUTH_PATH=$GOOGLE_CREDENTIALS_PATH GDRIVE_CREDENTIALS_PATH=$DRIVE_TOKEN_PATH npx -y @modelcontextprotocol/server-gdrive auth已显示URL 批准secrets/token.json中所述修改相应参数的值。 - 为烟雾确定一个可搜索的验证文件夹(已授予访问权限)。
CLI 使用方法
- REPL 启动(TTY):
poetry run python -m app- 没有实键时,警告后自动回退至拖车。
- 帮助/非交互模式:
poetry run python -m app --help。 - 强制取消:
poetry run python -m app --mock。 - 实API 允许调用:环境变量
ALLOW_REAL=1设置(--mock指定时莫克优先)。在这种状态下servers.yaml的mode: real中描述的相应参数的值.env如果存在,启动时.env求值时使用曲面法线的原始方向。在其他情况下.env将条目添加到文档注册表。
第3阶段:实际环境烟雾(基于接收)步骤总结
启动时Slack/GitHub/Drive 的real 日志中只有一次 real smoke enabled 中描述的相应参数的值。
- 统一材料(所有服务通用)
.env的OPENAI_API_KEY,SLACK_USER_TOKEN(xoxp-),GITHUB_TOKEN(PAT),GOOGLE_CREDENTIALS_PATH,DRIVE_TOKEN_PATH中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。servers.yaml在工作空间的边缘mode的real(保留默认值)OK)。
- Slack/GitHub 的,之auth_files 满足
servers.yaml的,之auth_files的secrets/slack_token.json,secrets/github_token.json求值时使用曲面法线的原始方向。由于当前服务器不使用内容,所以可以通过空文件。mkdir -p secrets touch secrets/slack_token.json secrets/github_token.json chmod 600 secrets/slack_token.json secrets/github_token.json- 服务器安装输出高速缓存时,在放置了上述空文件的状态下
ALLOW_REAL=1 poetry run python -m app如果执行一次(或服务器二进制单体)secrets/*.json中选择另一种天花板类型。
- Drive 准备实际服务器
servers.yaml中描述的相应参数的值。exec: npx args: - -y - "@modelcontextprotocol/server-gdrive"
- 実行
ALLOW_REAL=1 poetry run python -m app(--mock)。
- 确认
- 在启动日志中
real smoke enabled只出一次。 - 模式显示
slack=real, github=real, drive=real的总和。如果有一个缺损mock 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
- 故障排除
- Slack/GitHub 的mock 将显示
secrets/slack_token.json,secrets/github_token.json查看项目中可用的所有族。空文件。 - Drive 的timeout 预安装或
READINESS_TIMEOUT暂时延长,等待首次下载。
如何执行实际环境搜索烟雾(任务3)
使用实际密钥搜索3个服务Tool 一次一次地吸烟CLI 中所述修改相应参数的值。Slack 那么DM/Private 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
- 满足前提
ALLOW_REAL=1选项卡页面上创建或编辑条目--mock不加。.env和servers.yaml的明细栏样式中定义的设置。- GitHub 将条目添加到文档注册表
GITHUB_SMOKE_REPO=owner/repo中所述修改相应参数的值。 - 可选:如果想改变搜索关键词
SLACK_SMOKE_QUERY/GITHUB_SMOKE_QUERY/DRIVE_SMOKE_QUERY中所述修改相应参数的值。
- 実行
- 直接実行:
poetry run python -m app smoke --report reports/smoke.json - 或包装器:
ALLOW_REAL=1 scripts/smoke_real.sh --report reports/smoke.json
- 直接実行:
- 结果确认
- 成功的时候
real smoke passed将显示每个服务的status: ok和Slack 的,之dm_hit: true将条目添加到文档注册表。 - 失败的时候
real smoke failed查看项目中可用的所有族。结果文件有日期JSON 中选择另一种天花板类型。
- 成功的时候
笔记本
- 令牌/认证信息保持在本地
.env、token.json、secrets/属下不承诺。 - Docker/不使用容器Poetry 创建的虚拟环境(
.venv或.poetry-env),模板名称将采用不同的格式。 - 没有实际钥匙CI 在进行风的检查的情况下
poetry run pytest -m mock。实际模式的测试ALLOW_REAL=1缺少支持的问题。