Skip to main content

A minimalistic MCP client for testing MCP Server

Project description

MCP Client for Testing

A minimalistic MCP (Model Context Protocol) client for testing tool calls in MCP servers.

Usage

Install uv and test a tool call in an MCP server like this:

uvx mcp-client-for-testing \
    --config '
    [
        {
            "name": "name of mcp server",
            "command": "uv",
            "args": [
                "--directory", 
                "path/to/root/dir/", 
                "run", 
                "server.py"
            ],
            "env": {}
        }
    ]
    ' \
    --tool_call '{"name": "tool-name", "arguments": {}}'

To use it in code, install the package:

uv pip install mcp-client-for-testing 

and use it like this:

import asyncio
import json
from mcp_client_for_testing.client import execute_tool

async def main():
    config = [
        {
            "name": "name of mcp server",
            "command": "uv",
            "args": [
                "--directory", 
                "path/to/root/dir/", 
                "run", 
                "server.py"
            ],
            "env": {}
        }
    ]
    tool_call = {"name": "tool-name", "arguments": {}}
    
    await execute_tool(config, tool_call)

if __name__ == "__main__":
    asyncio.run(main())

Example

Use the echo-mcp-server-for-testing with uvx to test the MCP client.

uvx mcp-client-for-testing \
    --config '
    [
        {
            "name": "echo-mcp-server-for-testing",
            "command": "uvx",
            "args": [
                "echo-mcp-server-for-testing"
            ],
            "env": {
                "SECRET_KEY": "123456789"
            }
        }
    ]
    ' \
    --tool_call '{"name": "echo_tool", "arguments": {"message": "Hello, world!"}}'

Development

Installation from source

  1. Clone the repo git clone git@github.com:piebro/mcp-client-for-testing.git.
  2. Go into the root dir cd mcp-client-for-testing.
  3. Install in development mode: uv pip install -e .

Formatting and Linting

The code is formatted and linted with ruff:

uv run ruff format
uv run ruff check --fix

Building with uv

Build the package using uv:

uv build

Releasing a New Version

To release a new version of the package to PyPI:

  1. Create and push a new Git tag following semantic versioning:
    git tag v0.2.0
    git push origin v0.2.0
    

The GitHub Actions workflow will automatically build and publish the package to PyPI when a new tag is pushed. The version number will be derived directly from the Git tag.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_client_for_testing-0.1.4.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_client_for_testing-0.1.4-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file mcp_client_for_testing-0.1.4.tar.gz.

File metadata

  • Download URL: mcp_client_for_testing-0.1.4.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mcp_client_for_testing-0.1.4.tar.gz
Algorithm Hash digest
SHA256 2b44ade7f5278c721a9fc377dfdd5c4d4d168623fd9e5061ab459f77a3b9cbef
MD5 a6e4ec63182d53fff901769dde4d10bd
BLAKE2b-256 a081dc45fcff192cc5d78b22221b5cd27fdefff4d824c87a91654243a861db7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_client_for_testing-0.1.4.tar.gz:

Publisher: publish.yml on piebro/mcp-client-for-testing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_client_for_testing-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_client_for_testing-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ee32da528e8e85df47bc4374ee224c2f18cc1a735b90f9be694ae49e1484eee1
MD5 ec948ee256aebd2317475f604e239970
BLAKE2b-256 1aab3f212f6f0d092f79647201584a15f37b8bd03440b407745d84eec6ef96f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_client_for_testing-0.1.4-py3-none-any.whl:

Publisher: publish.yml on piebro/mcp-client-for-testing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page