Skip to main content

strands-tools-mcp

Expose Strands Agents tools as an MCP server via stdio transport, so any MCP client (Kiro, Claude Desktop, etc.) can use them.

Supports both @tool-decorated functions and TOOL_SPEC module-based tools from the strands-agents-tools package, as well as custom tool files.

Installation

pip install strands-tools-mcp

Or from source:

git clone https://github.com/mkmeral/strands-tools-mcp.git
cd strands-tools-mcp
pip install -e ".[dev]"

Configuration

Configure which tools to expose via environment variables:

Variable Description Example
STRANDS_TOOLS Comma-separated tool names from the strands-agents-tools package shell,http_request,current_time,file_read
STRANDS_TOOLS_PATHS Comma-separated file paths or URLs to custom .py tool files /path/to/my_tool.py,https://raw.githubusercontent.com/user/repo/main/tool.py

Both variables can be used together. At least one must be set.

Usage

As a CLI

STRANDS_TOOLS=current_time,shell strands-tools-mcp

In Kiro / Claude Desktop MCP Config

Add to your MCP configuration file:

{
  "mcpServers": {
    "strands-tools": {
      "command": "strands-tools-mcp",
      "env": {
        "STRANDS_TOOLS": "shell,http_request,file_read,file_write"
      }
    }
  }
}

With Custom Tools

You can combine built-in Strands tools with your own custom tool files:

{
  "mcpServers": {
    "my-tools": {
      "command": "strands-tools-mcp",
      "env": {
        "STRANDS_TOOLS": "current_time",
        "STRANDS_TOOLS_PATHS": "/path/to/my_tool.py"
      }
    }
  }
}

With Remote Tools (URLs)

Point directly at raw GitHub links, gists, or any hosted .py file:

{
  "mcpServers": {
    "remote-tools": {
      "command": "strands-tools-mcp",
      "env": {
        "STRANDS_TOOLS_PATHS": "https://raw.githubusercontent.com/user/repo/main/my_tool.py"
      }
    }
  }
}

Local paths and URLs can be mixed in STRANDS_TOOLS_PATHS.

Custom tool files should use the @tool decorator from strands:

from strands import tool

@tool
def my_custom_tool(message: str) -> str:
    """A custom tool that processes a message.

    Args:
        message: The message to process

    Returns:
        The processed message
    """
    return f"Processed: {message}"

How It Works

The server uses the Strands SDK's built-in tool loader to discover tools, then exposes them via the MCP protocol's stdio transport using the raw mcp library (no FastMCP). Both tool patterns are supported:

  • @tool decorated functions (DecoratedFunctionTool) — e.g. current_time, shell, calculator
  • TOOL_SPEC module-based tools (PythonAgentTool) — e.g. file_read, file_write, http_request, python_repl

All tools are invoked through the unified AgentTool.stream() interface, so both types work identically.

Development

# Install in dev mode
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Lint and format
ruff check src/ tests/
ruff format src/ tests/

License

Apache-2.0

Metadata

Release files for strands-tools-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for strands-tools-mcp 0.1.0
File Size Uploaded
strands_tools_mcp-0.1.0.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for strands-tools-mcp 0.1.0
File Interpreter ABI Platform
strands_tools_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.5 kB

Release files / strands_tools_mcp-0.1.0.tar.gz

Download URL strands_tools_mcp-0.1.0.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
55261b03be4efb00ccd454747e8a8549cc80c499c124bde422459e1dcae0354d
BLAKE2b-256 checksum
How to use checksums
d97cef6977d48d04d55e654b9bf473478ecde9810b3f173a964e720ee2dd9a4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 12, 2026.

Transparency log

Release files / strands_tools_mcp-0.1.0-py3-none-any.whl

Download URL strands_tools_mcp-0.1.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ff18058951b529f058662ff729f697a04e41cc9928fb491482346d2c97d15b6
BLAKE2b-256 checksum
How to use checksums
7a825b5875041a98b76635a2c139dd2c65dfbd52b206deb3dd802f639e74a99c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page