IP信息查询工具

一个基于MCP协议和Claude-3-5-Haiku模型的IP信息查询工具,支持通过Docker或开发容器运行。

  • by RyosukeDTomita
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 ryosukedtomita/mcp_tool_poisoning_attacks

使用说明

MCP_TOOL_中毒攻击

索引


关于

MCP客户端和MCP服务器


环境

  • node.js v22
  • mcp-sdk
  • claude-3-5-haiku-20241022

[!注意] ./servers/ipinfo/现在npx使用MCP Client的规格化距离的幂函数。 npx使用GitHub从存储库install要…就package.json由于必须将数据放在存储库顶部,npx用于./package.json的明细栏样式中定义的设置。


准备

对于开发容器

  1. 安装VSCode、Docker
  2. 安装VSCode扩展 开发容器
  3. 在VSCode上, Ctrl shift p 然后跑 Dev Containers: Rebuild Containers
  4. 创建 .env 并添加 ANTHROPIC_API_KEY
cat << EOF > mcp_client/.env
ANTHROPIC_API_KEY=your_anthropic_api_key
EOF
  1. 创建 mcp_client/mcpservers.json

码头工人

  1. 创建 .env 并添加 ANTHROPIC_API_KEY
cat << EOF > mcp_client/.env
ANTHROPIC_API_KEY=your_anthropic_api_key
EOF
  1. 创建 mcp_client/mcpservers.json
  2. 构建docker镜像
docker compose build

使用方法

在开发人员容器中运行

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サービスです。

参考文献