Letta
通过管理OAuth的Letta宿主应用连接RepoHop。
Letta支持Streamable HTTP MCP服务器,但Agent SDK不会打开交互式OAuth流程。启动Letta会话的应用必须处理登录、令牌存储和令牌刷新。
此设置面向Letta应用的开发者。不要把短期RepoHop访问令牌粘贴到永久配置中。
连接前
确保RepoHop Local在线,并已批准仓库。除Read外,保持其他权限关闭。宿主应用还需要秘密存储和用于OAuth的浏览器回调。
添加RepoHop
向维护Letta应用的编程智能体发送:
向此Letta智能体添加RepoHop。将https://repohop.app/api/mcp用作Streamable HTTP MCP服务器。遵循服务器的OAuth发现,通过公布的registration_endpoint注册公共客户端。使用用户浏览器和此宿主都能访问的托管HTTPS redirect_uri。除非浏览器和回调监听器运行在同一设备上,否则不要使用localhost或127.0.0.1。然后使用带PKCE的Authorization Code流程和刷新令牌。不要重复使用固定client_id,也不要向用户索取client_id。仅将客户端注册信息和令牌保存在宿主的秘密存储中。不要向模型或日志暴露凭据。在授权请求中申请projects:read projects:write projects:exec projects:publish offline_access,让RepoHop可以提供所有访问级别。RepoHop只会授予我选择的权限。通过Authorization请求头将当前访问令牌传递给Letta MCP会话。只添加已授予范围内的工具,并调用project_catalog。使用任何能力前,必须同时满足已授予范围和每个仓库的project_catalog权限。添加断开功能,用于撤销RepoHop并删除保存的全部RepoHop凭据。当实现可以在浏览器中完成登录和PKCE、安全保存并刷新两种令牌、只启用读取工具,并在断开时删除令牌,就算完成。
批准访问
在浏览器中登录RepoHop。检查客户端名称,选择仓库并只批准Read。返回Letta应用并启动新会话。
测试连接
对Letta智能体说:
使用RepoHop列出我批准的仓库。对我选择的仓库运行project_status,然后用project_read读取README。不要更改文件或运行命令。检查结果,并确认模型对话和应用日志中没有访问令牌或刷新令牌。
允许更改
只有在仓库和RepoHop连接中启用对应权限后,才能添加修改工具。在本地检查每项更改。如果任务不需要,请保持Execute、Commit和Push不可用。
移除RepoHop
在RepoHop中撤销连接。使用宿主应用的断开功能移除MCP服务器并删除保存的RepoHop令牌。启动新Letta会话,确认RepoHop工具不再可用。
如果OAuth或令牌刷新失败,不要改用永久访问令牌。修复宿主流程或查看故障排除。