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": {}
        }
    ]
    ' \
    --client_log_level "WARNING" \
    --server_log_level "INFO" \
    --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 logging
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, server_log_level_int=logging.DEBUG)

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"
            }
        }
    ]
    ' \
    --client_log_level "WARNING" \
	--server_log_level "INFO" \
    --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, create and push a new Git tag:

  1. Checkout the main branch and get the current version:

    git checkout main
    git pull origin main
    git describe --tags
    
  2. Create and push a new Git tag:

    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 python package 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.7.tar.gz (20.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.7-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_client_for_testing-0.1.7.tar.gz
  • Upload date:
  • Size: 20.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.7.tar.gz
Algorithm Hash digest
SHA256 3749f8a26252cb4295a880dad269009d73da35dffc042b4f485243bcf0011e81
MD5 71164a64a264fc91b80dd5e4e1e371fd
BLAKE2b-256 bc23ad3469ba092a0634f80ed5c244d26c066d4dc35aa255ff0394b5b8761087

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_client_for_testing-0.1.7.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.7-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_client_for_testing-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 74fe1e617f713128f341a825a6fa5e4e919bff0aa86eeff387203a659f20dd04
MD5 de17700e654e9ca32496501817ffa76e
BLAKE2b-256 30268ae754d801bd6c1855bbe1c7e2418aa56ec2c146d8f0126480585a865d88

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_client_for_testing-0.1.7-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