关于 MCP_TOOL_POISONING_ATTACKS
MCP_TOOL_POISONING_ATTACKS 是用于学习的 Node.js MCP 客户端与服务示例,可连接配置的 MCP 服务并显示其工具,并提供 Docker 和 Dev Container 运行方式。
主要功能
- 01MCP 客户端与服务示例
- 02加载配置的 MCP 服务
- 03显示可用工具
- 04支持 Docker 和 Dev Container
适用场景
- 01学习 MCP 客户端与服务交互
- 02查看配置服务公开的工具
MCP 相关
项目包含 MCP 客户端和 MCP 服务。客户端读取 mcpservers.json,目前使用其中配置的第一个服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP_TOOL_POISONING_ATTACKS
目录
关于
MCP 客户端和 MCP 服务
环境
- node.js v22
- mcp sdk
claude-3-5-haiku-20241022
说明
./servers/ipinfo/目前采用通过
npx从 MCP 客户端使用的方式。 由于要通过npx从 GitHub 仓库安装,必须将package.json放在仓库根目录,因此为了使用npx,将./package.json放在仓库根目录。
准备
使用 Dev Container
- 安装 VSCode、Docker
- 安装 VSCode 扩展 Dev ContainerS
- 在 VSCode 中按下
Ctrl shift p,并运行Dev Containers: Rebuild Containers - 创建
.env并添加ANTHROPIC_API_KEY
cat << EOF > mcp_client/.env
ANTHROPIC_API_KEY=your_anthropic_api_key
EOF
- 创建
mcp_client/mcpservers.json
Docker
- 创建
.env并添加ANTHROPIC_API_KEY
cat << EOF > mcp_client/.env
ANTHROPIC_API_KEY=your_anthropic_api_key
EOF
- 创建
mcp_client/mcpservers.json - 构建 Docker 镜像
docker compose build
使用方法
在 Dev Containers 中运行
cd mcp_client
yarn run bundle
node dist/index.js
使用 docker run 运行
docker compose run -it mcp_client
示例
mcp_client/mcpservers.json示例
{
"mcpServers": {
"ipinfo": {
"command": "/usr/local/bin/npx",
"args": [
"-y",
"github:RyosukeDTomita/mcp_tool_poisoning_attacks#main",
"ipinfo"
],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin"
}
},
"burp": {
"url": "http://localhost:9876/sse"
}
}
}
说明
目前会使用
mcpservers.json中的第一个服务。
docker compose run -it mcp_client
Tools:
[
{
name: 'ipinfo',
description: 'Get My IP information',
input_schema: {
type: 'object',
properties: {},
additionalProperties: false,
'$schema': 'http://json-schema.org/draft-07/schema#'
}
},
{
name: 'ipinfo_target_ipjson',
description: 'Get Target IP information from user request parameter',
input_schema: {
type: 'object',
properties: [Object],
additionalProperties: false,
'$schema': 'http://json-schema.org/draft-07/schema#'
}
}
]
Enter your message: 8.8.8.8の情報を教えて
=====Request to Anthoropic API=====
[ { role: 'user', content: '8.8.8.8の情報を教えて' } ]
=====Response from Anthropic API=====:
{
id: 'msg_012ZGLAfhWKmgDroHELiq6F6',
type: 'message',
role: 'assistant',
model: 'claude-3-5-haiku-20241022',
content: [
{
type: 'text',
text: '8.8.8.8の情報を調べるために、ipinfo_target_ipjsonツールを使用します。'
},
{
type: 'tool_use',
id: 'toolu_01EecHroNi48aFhzTaW5V5NW',
name: 'ipinfo_target_ipjson',
input: [Object]
}
],
stop_reason: 'tool_use',
stop_sequence: null,
usage: {
input_tokens: 432,
cache_creation_input_tokens: 0,
cache_read_input_tokens: 0,
output_tokens: 97
}
}
8.8.8.8の情報を調べるために、ipinfo_target_ipjsonツールを使用します。
=====MCP Server Tool result=====
: {
content: [
{
type: 'text',
text: '{"ip":"8.8.8.8","hostname":"dns.google","city":"Mountain View","region":"California","country":"US","loc":"38.0088,-122.1175","org":"AS15169 Google LLC","postal":"94043","timezone":"America/Los_Angeles","readme":"https://ipinfo.io/missingauth","anycast":true}'
}
]
}
=====Response from Anthropic API after tool use=====
この情報は、IPアドレス8.8.8.8の詳細を示しています。主な特徴は以下の通りです:
1. IP: 8.8.8.8
2. ホスト名: dns.google
3. 所在地:
- 都市: Mountain View
- 地域: カリフォルニア
- 国: アメリカ合衆国(US)
4. 地理的座標: 北緯38.0088、西経-122.1175
5. 組織: AS15169 Google LLC
6. 郵便番号: 94043
7. タイムゾーン: アメリカ/ロサンゼルス
8. エニーキャスト: はい(true)
この8.8.8.8は、Googleが提供する公開DNSサーバーの1つで、一般的に多くのユーザーが利用している信頼性の高いDNSサービスです。
参考
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
