mcpField
M
MCP_TOOL_POISONING_ATTACKS

MCP_TOOL_POISONING_ATTACKS

Local
github.com/RyosukeDTomitaSecurity3Updated 70w ago

About MCP_TOOL_POISONING_ATTACKS

MCP_TOOL_POISONING_ATTACKS is a Node.js MCP client and server study project. It runs a configured MCP server and displays its available tools, with Docker and Dev Container setup options.

Key features

  1. 01MCP client and server example
  2. 02Loads a configured MCP server
  3. 03Displays available tools
  4. 04Docker and Dev Container workflows

Use cases

  1. 01Study MCP client-server interaction
  2. 02Inspect tools exposed by a configured server

MCP support

The project includes an MCP client and server. The client reads mcpservers.json and currently uses the first configured server.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"mcp_tool_poisoning_attacks": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
Run commanddocker run -i --rm compose

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocicompose

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MseeP.ai Security Assessment Badge

MCP_TOOL_POISONING_ATTACKS

un license

INDEX


ABOUT

MCP Client and MCP Server


ENVIRONMENT

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

Note

./servers/ipinfo/は現在npxを使ってMCP Clientから使用する形を取っている。 npxを使ってGitHubのリポジトリからinstallするにはpackage.jsonをリポジトリトップに配置する必要があるため,npx使用のための./package.jsonをリポジトリトップに配置している。


PREPARING

For Dev Container
  1. install VSCode, Docker
  2. install VSCode Extensions Dev ContainerS
  3. On the VSCode, Ctrl shift p and run Dev Containers: Rebuild Containers
  4. create .env and add ANTHROPIC_API_KEY
cat << EOF > mcp_client/.env
ANTHROPIC_API_KEY=your_anthropic_api_key
EOF
  1. create mcp_client/mcpservers.json
Docker
  1. create .env and add ANTHROPIC_API_KEY
cat << EOF > mcp_client/.env
ANTHROPIC_API_KEY=your_anthropic_api_key
EOF
  1. create mcp_client/mcpservers.json
  2. build docker image
docker compose build

HOW TO USE

Running in Dev Containers
cd mcp_client
yarn run bundle
node dist/index.js
Running to docker run
docker compose run -it mcp_client

EXAMPLE

example of 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"
    }
  }
}

Note

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

References

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.