最近,我写了一篇四部分的系列文章,介绍了如何利用模型上下文协议(MCP)为你的LLM应用程序提供缺失的上下文。在该系列文章中,我们创建了一个自定义MCP服务器以帮助你管理AWS资源。然后,我们向服务器添加了一个基于RAG的知识库和一些工具,使服务器具备特定于AWS服务的知识,从而帮助我们更快地学习和开发新应用。最后,我们创建了一个自定义的MCP客户端,通过Amazon Bedrock调用Claude 3.7 Sonnet。通过创建自定义MCP客户端,我们学习了MCP和Amazon Bedrock的知识,但实际上,我们的MCP服务器可以与任何支持MCP协议的客户端一起使用。今天,我们将看看如何将我们之前做的自定义MCP服务器与Amazon Q开发人员CLI集成。
亚马逊Q开发者(Amazon Q开发者)如果你还没有发现Amazon Q Developer,我鼓励你去试试看。和所有优秀的基于生成式AI的编程助手一样,它可以与你最喜欢的IDE集成,并在你开发项目时提供宝贵的帮助。它还包括Amazon Q Developer CLI,它是一个基于命令行的助手,你可以在终端中输入q chat
来启动它。从昨天起,Amazon Q Developer CLI现在支持自定义MCP服务器。更多详情请参阅发布博客文章。不过现在,我们不妨添加我们自己的IVS MCP服务器试一下!
首先,按照此链接安装Amazon Q,然后使用您的AWS Builder ID进行身份验证。如果您已经安装了它,请确保您正在使用至少版本 1.9.0
。
接下来我们将定义MCP服务器如下,在~/.aws/amazonq
目录中的mcp.json
文件中。在这个文件中,我们将告诉Amazon Q如何与我们的MCP服务器集成所需的必要信息。
{
"mcpServers": {
"amazon-ivs-mcp-server": {
"command": "node",
"args": ["/projects/demos/ivs-mcp/amazon-ivs-mcp-server-demo/index.js"],
"env": {
}
}
}
}
以下是一个用于启动亚马逊IVS MCP服务器的JSON配置示例。启动亚马逊IVS MCP服务器的命令是 node
,参数是项目的相对路径,环境变量为空,表明没有额外的环境配置需要设置。
进入全屏 退出全屏
在 mcpServer
对象中,定义一个键为 amazon-ivs-mcp-server
的对象。这个名字可以是任何你喜欢的名字,但最好选择一个能准确描述你添加的服务器的名字。在这个对象中,输入 command
(node
),并将 MCP 服务器的路径添加到 args
数组里。最后,如有必要,在 env
对象中定义任何所需的环境变量。在我的情况下,我已在会话中设置了这些环境变量,所以这里无需再显式定义它们。
最后,使用 q chat
启动 Amazon Q 开发者 CLI 工具。如果你已经正确配置了我们在本博客系列中提到的 Amazon IVS MCP 服务器,你将看到一个可用工具的列表。
$
q chat
如需了解更多MCP安全性信息,请访问 https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-security.html
⚠ amazon_ivs_mcp_server 有以下警告信息:
以下工具名称已更改:
- amazon_ivs_mcp_server___get-logging-configuration -> amazon_ivs_mcp_server___getloggingconfiguration
- amazon_ivs_mcp_server___get-playback-restriction-policy -> amazon_ivs_mcp_server___getplaybackrestrictionpolicy
...以及其他警告
✓ 1 个 MCP 服务器已成功初始化
点击这里进入全屏模式 点击这里退出全屏模式
别担心那些⚠ 警告,亚马逊 Q 只是改了工具的名字,让它符合自己的命名规则。关键在于:✓ 1 of 1 mcp 服务器初始化完成
。我们已经成功地把 MCP 服务器和亚马逊 Q 开发者 CLI 整合在一起啦!
我们可以使用一些命令来管理我们的工具。执行 /help
可以查看 CLI 中可用的命令。这里有一些与工具相关的命令你可以运行:
/tools 查看和管理工具权限
help 显示信任命令的帮助信息
trust 信任特定工具或工具(仅限当前会话)
untrust 取消信任特定工具或工具,恢复到每次请求时确认
trustall 信任所有工具(相当于已废弃的/acceptall)
reset 将所有工具重置为默认设置
按全屏进入 按全屏退出
如果某个工具没有被“信任”,当该 CLI 需要使用时,系统会提示你“信任”这个工具。
如何通过 Amazon Q 开发者 CLI 来使用 Amazon IVS MCP 服务器。我们现在可以问一下 Amazon Q 关于我们的 Amazon IVS 账户。比如:
给我说说最后一次在 demo-stage 的直播情况
结果是:
我会帮你查找关于“demo-stage”的最近流媒体会话的信息。首先我需要确认这个舞台是否存在,然后获取它的会话信息。
首先让我列出所有IVS实时舞台,找到名为“demo-stage”的那个:
🛠️ 使用工具:amazon_ivs_mcp_server中的list-stages
⋮
● 使用以下参数运行list-stages:
⋮ {
⋮ "arguments": {},
⋮ "name": "list-stages"
⋮ }
允许执行此操作吗?使用 't' 表示信任此工具(总是允许)[y/n/t]:
切换到全屏模式 或 恢复常规模式
当我输入 t
来信任 list-stages
工具的信任时,该工具就会被调用。Amazon Q 会继续调用工具,直到找到回应我最初提示所需的信息。
我发现列表中的 "demo-stage"。现在让我获取此阶段的会话,以找到最后一个流媒体会话(session):
🛠️ 使用来自 mcp 服务器 amazon_ivs_mcp_server 的 list-stage-sessions 工具
⋯
● 运行 list-stage-sessions 工具,参数如下:
⋯ {
⋯ "arguments": {
⋯ "arn": "arn:aws:ivs:us-east-1:[redacted]:stage/[redacted]"
⋯ },
⋯ "name": "list-stage-sessions"
⋯ }
🛠️ 使用来自 mcp 服务器 amazon_ivs_mcp_server 的 get-stage-session 工具
⋯
● 运行 get-stage-session 工具,参数如下:
⋯ {
⋯ "arguments": {
⋯ "sessionId": "st-[redacted]",
⋯ "stageArn": "arn:aws:ivs:us-east-1:[redacted]:stage/[redacted]"
⋯ },
⋯ "name": "get-stage-session"
⋯ }
🛠️ 使用来自 mcp 服务器 amazon_ivs_mcp_server 的 list-participants 工具
⋯
● 运行 list-participants 工具,参数如下:
⋯ {
⋯ "arguments": {
⋯ "arn": "arn:aws:ivs:us-east-1:[redacted]:stage/[redacted]",
⋯ "sessionId": "st-[redacted]"
⋯ },
⋯ "name": "list-participants"
⋯ }
全屏显示 开启全屏 关闭全屏
最终的总结是这个阶段会议的内容如下:
根据我所收集的信息,这是最近一次在“demo-stage”上进行的流媒体会话的详细信息:
## 最近一次流媒体会话的详细信息
• **舞台名**: demo-stage
• **会话 ID**: st-[redacted]
• **开始时间**: 2025年4月24日 15:50:38 UTC
• **结束时间**: 2025年4月24日 16:55:06 UTC
• **时长**: 大约1小时5分钟
### 参与者信息:
• 参与者人数: 8
• 6名参与者在会话期间发布了内容
• 一名用户ID为"[redacted]"的参与者被识别出来
• 所有参与者现已断开连接
多名参与者在不同时间加入该会话,最早于15:50:37 UTC加入,最晚在16:41:06 UTC加入。所有参与者在此次会话中都没有启用录音功能。
这是最近一次在demo-stage上的会话,该会话大约在6天前结束的。
切换到全屏模式, 退出全屏
使用 Amazon Q CLI 快速构建 Amazon IVS (互动视频服务) 快速原型就像我们自己的MCP客户端一样,我们现在可以让Amazon Q快速生成一个原型应用程序,它还可以用我们的Amazon IVS专业知识和工具帮助完成任务。
使用最新版本的 Amazon IVS Web 直播 SDK 创建一个简单的原型应用程序,以广播到 Amazon IVS 低延迟频道。在用户界面中包括用来输入接入端点和流密钥的输入框,并让用户选择他们的摄像头和麦克风。如有需要,可参考最新的文档:https://aws.github.io/amazon-ivs-web-broadcast/docs/low-latency-sdk-guides/introduction
这产生了一个简单的HTML应用,可以向Amazon IVS的低延时频道发送流。
这是一个关于低延迟广播原型的图片。
在这篇文章里,我们学习了如何将自定义的MCP服务添加到Amazon Q开发者CLI中。这个功能不仅限于您的MCP服务;您可以添加任何受信任的MCP服务,使Amazon Q变得更加强大,成为任何开发者的极佳工具。今天就赶紧下载试试吧!
[MCP]:模型上下文协议
[LLM]:大型语言模型
[RAG]:检索增强生成
[SSE]:服务器发送事件
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)