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

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"
            }
        }
    ]
    ' \
    --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.8.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.8-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_client_for_testing-0.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 a16c3f18086704cfe70a4a33ec31e79a95e2672976313e3f064e1cce11ed872e
MD5 28ab8c97c5f893177c2329d8d598b177
BLAKE2b-256 cd717fb8f3ba48c208d5dce540dc4b7c4925521b0ddcac43ef4a32f5209ff10e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mcp_client_for_testing-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8d8ac38c339b06e531412348631fd9530c08595c8c506ea851394ea6a57cfa65
MD5 16b05d78f3c4f8b696bbc45694fedcfe
BLAKE2b-256 cc8212accca5c9d03923c11d5fe748181052e6dc07bc83ca504784074b9cbd87

See more details on using hashes here.

Provenance

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