This commit is contained in:
kgod
2026-05-26 21:02:17 +08:00
commit 8697477a53
10000 changed files with 1541403 additions and 0 deletions
@@ -0,0 +1 @@
pip
@@ -0,0 +1,230 @@
Metadata-Version: 2.4
Name: mcp
Version: 1.27.1
Summary: Model Context Protocol SDK
Project-URL: Homepage, https://modelcontextprotocol.io
Project-URL: Repository, https://github.com/modelcontextprotocol/python-sdk
Project-URL: Issues, https://github.com/modelcontextprotocol/python-sdk/issues
Author: Anthropic, PBC.
Maintainer-email: David Soria Parra <davidsp@anthropic.com>, Justin Spahr-Summers <justin@anthropic.com>
License: MIT
License-File: LICENSE
Keywords: automation,git,llm,mcp
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: anyio>=4.5
Requires-Dist: httpx-sse>=0.4
Requires-Dist: httpx<1.0.0,>=0.27.1
Requires-Dist: jsonschema>=4.20.0
Requires-Dist: pydantic-settings>=2.5.2
Requires-Dist: pydantic<3.0.0,>=2.11.0
Requires-Dist: pyjwt[crypto]>=2.10.1
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: pywin32>=310; sys_platform == 'win32'
Requires-Dist: sse-starlette>=1.6.1
Requires-Dist: starlette>=0.27
Requires-Dist: typing-extensions>=4.9.0
Requires-Dist: typing-inspection>=0.4.1
Requires-Dist: uvicorn>=0.31.1; sys_platform != 'emscripten'
Provides-Extra: cli
Requires-Dist: python-dotenv>=1.0.0; extra == 'cli'
Requires-Dist: typer>=0.16.0; extra == 'cli'
Provides-Extra: rich
Requires-Dist: rich>=13.9.4; extra == 'rich'
Provides-Extra: ws
Requires-Dist: websockets>=15.0.1; extra == 'ws'
Description-Content-Type: text/markdown
# MCP Python SDK
<div align="center">
<strong>Python implementation of the Model Context Protocol (MCP)</strong>
[![PyPI][pypi-badge]][pypi-url]
[![MIT licensed][mit-badge]][mit-url]
[![Python Version][python-badge]][python-url]
[![Documentation][docs-badge]][docs-url]
[![Protocol][protocol-badge]][protocol-url]
[![Specification][spec-badge]][spec-url]
</div>
<!-- omit in toc -->
## Table of Contents
- [MCP Python SDK](#mcp-python-sdk)
- [Overview](#overview)
- [Installation](#installation)
- [Quickstart](#quickstart)
- [What is MCP?](#what-is-mcp)
- [Documentation](#documentation)
- [Contributing](#contributing)
- [License](#license)
[pypi-badge]: https://img.shields.io/pypi/v/mcp.svg
[pypi-url]: https://pypi.org/project/mcp/
[mit-badge]: https://img.shields.io/pypi/l/mcp.svg
[mit-url]: https://github.com/modelcontextprotocol/python-sdk/blob/main/LICENSE
[python-badge]: https://img.shields.io/pypi/pyversions/mcp.svg
[python-url]: https://www.python.org/downloads/
[docs-badge]: https://img.shields.io/badge/docs-python--sdk-blue.svg
[docs-url]: https://modelcontextprotocol.github.io/python-sdk/
[protocol-badge]: https://img.shields.io/badge/protocol-modelcontextprotocol.io-blue.svg
[protocol-url]: https://modelcontextprotocol.io
[spec-badge]: https://img.shields.io/badge/spec-spec.modelcontextprotocol.io-blue.svg
[spec-url]: https://modelcontextprotocol.io/specification/latest
## Overview
The Model Context Protocol allows applications to provide context for LLMs in a standardized way, separating the concerns of providing context from the actual LLM interaction. This Python SDK implements the full MCP specification, making it easy to:
- Build MCP clients that can connect to any MCP server
- Create MCP servers that expose resources, prompts and tools
- Use standard transports like stdio, SSE, and Streamable HTTP
- Handle all MCP protocol messages and lifecycle events
## Installation
### Adding MCP to your python project
We recommend using [uv](https://docs.astral.sh/uv/) to manage your Python projects.
If you haven't created a uv-managed project yet, create one:
```bash
uv init mcp-server-demo
cd mcp-server-demo
```
Then add MCP to your project dependencies:
```bash
uv add "mcp[cli]"
```
Alternatively, for projects using pip for dependencies:
```bash
pip install "mcp[cli]"
```
### Running the standalone MCP development tools
To run the mcp command with uv:
```bash
uv run mcp
```
## Quickstart
Let's create a simple MCP server that exposes a calculator tool and some data:
<!-- snippet-source examples/snippets/servers/fastmcp_quickstart.py -->
```python
"""
FastMCP quickstart example.
Run from the repository root:
uv run examples/snippets/servers/fastmcp_quickstart.py
"""
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo", json_response=True)
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
# Add a prompt
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
"""Generate a greeting prompt"""
styles = {
"friendly": "Please write a warm, friendly greeting",
"formal": "Please write a formal, professional greeting",
"casual": "Please write a casual, relaxed greeting",
}
return f"{styles.get(style, styles['friendly'])} for someone named {name}."
# Run with streamable HTTP transport
if __name__ == "__main__":
mcp.run(transport="streamable-http")
```
_Full example: [examples/snippets/servers/fastmcp_quickstart.py](https://github.com/modelcontextprotocol/python-sdk/blob/v1.x/examples/snippets/servers/fastmcp_quickstart.py)_
<!-- /snippet-source -->
You can install this server in [Claude Code](https://docs.claude.com/en/docs/claude-code/mcp) and interact with it right away. First, run the server:
```bash
uv run --with mcp examples/snippets/servers/fastmcp_quickstart.py
```
Then add it to Claude Code:
```bash
claude mcp add --transport http my-server http://localhost:8000/mcp
```
Alternatively, you can test it with the MCP Inspector. Start the server as above, then in a separate terminal:
```bash
npx -y @modelcontextprotocol/inspector
```
In the inspector UI, connect to `http://localhost:8000/mcp`.
## What is MCP?
The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) lets you build servers that expose data and functionality to LLM applications in a secure, standardized way. Think of it like a web API, but specifically designed for LLM interactions. MCP servers can:
- Expose data through **Resources** (think of these sort of like GET endpoints; they are used to load information into the LLM's context)
- Provide functionality through **Tools** (sort of like POST endpoints; they are used to execute code or otherwise produce a side effect)
- Define interaction patterns through **Prompts** (reusable templates for LLM interactions)
- And more!
## Documentation
- [Building Servers](docs/server.md) -- tools, resources, prompts, logging, completions, sampling, elicitation, transports, ASGI mounting
- [Writing Clients](docs/client.md) -- connecting to servers, using tools/resources/prompts, display utilities
- [Authorization](docs/authorization.md) -- OAuth 2.1, token verification, client authentication
- [Low-Level Server](docs/low-level-server.md) -- direct handler registration for advanced use cases
- [Protocol Features](docs/protocol.md) -- MCP primitives, server capabilities
- [Testing](docs/testing.md) -- in-memory transport testing with pytest
- [API Reference](https://modelcontextprotocol.github.io/python-sdk/api/)
- [Experimental Features (Tasks)](https://modelcontextprotocol.github.io/python-sdk/experimental/tasks/)
- [Model Context Protocol documentation](https://modelcontextprotocol.io)
- [Model Context Protocol specification](https://modelcontextprotocol.io/specification/latest)
- [Officially supported servers](https://github.com/modelcontextprotocol/servers)
## Contributing
We are passionate about supporting contributors of all levels of experience and would love to see you get involved in the project. See the [contributing guide](CONTRIBUTING.md) to get started.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
@@ -0,0 +1,227 @@
../../Scripts/mcp.exe,sha256=EWnIAs5yXWRv6GYC_5YjHbP1bzU3u8CUnfGYOGW7oVk,108343
mcp-1.27.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
mcp-1.27.1.dist-info/METADATA,sha256=ARFtu7kbkYA7UbU3vM_CMmRr3qNzdCOGjCSk9Qffy0E,8234
mcp-1.27.1.dist-info/RECORD,,
mcp-1.27.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
mcp-1.27.1.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
mcp-1.27.1.dist-info/entry_points.txt,sha256=gnGBbo3yGF0YJNXfZpgkAg1-CQtKxnzxrlA53c8viYA,42
mcp-1.27.1.dist-info/licenses/LICENSE,sha256=XhPbvB0SD8KgPOzefJFCSuLX3hG2PVje0vRDHiYe5Q0,1071
mcp/__init__.py,sha256=9mrheVmhQg7bZ2JNzXnaIIYFQ-HVE7fVyG7AJQz4r3I,3224
mcp/__pycache__/__init__.cpython-312.pyc,,
mcp/__pycache__/types.cpython-312.pyc,,
mcp/cli/__init__.py,sha256=NJrJIUQmjc6FtSxvGNt1zeXnSLj8-Mli86laODTtQzE,107
mcp/cli/__pycache__/__init__.cpython-312.pyc,,
mcp/cli/__pycache__/claude.cpython-312.pyc,,
mcp/cli/__pycache__/cli.cpython-312.pyc,,
mcp/cli/claude.py,sha256=MKUuZGrBmMSslD2weLIxU7RdQXZl2OvuMMq-_-EAlgY,5086
mcp/cli/cli.py,sha256=w6mWBmcy4y7nxLQDa4qSbxKV0BWeJqU_SFZf3qdOubs,15179
mcp/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
mcp/client/__main__.py,sha256=_aXYJ3xJiQGURxEEfvV-4MAqxRJwIFptFaLHyJgfvRU,2588
mcp/client/__pycache__/__init__.cpython-312.pyc,,
mcp/client/__pycache__/__main__.cpython-312.pyc,,
mcp/client/__pycache__/session.cpython-312.pyc,,
mcp/client/__pycache__/session_group.cpython-312.pyc,,
mcp/client/__pycache__/sse.cpython-312.pyc,,
mcp/client/__pycache__/streamable_http.cpython-312.pyc,,
mcp/client/__pycache__/websocket.cpython-312.pyc,,
mcp/client/auth/__init__.py,sha256=hvlPclaDk3EkHr_nrt6tx37iv_rQ8SQgosM0OhJSeQ4,488
mcp/client/auth/__pycache__/__init__.cpython-312.pyc,,
mcp/client/auth/__pycache__/exceptions.cpython-312.pyc,,
mcp/client/auth/__pycache__/oauth2.cpython-312.pyc,,
mcp/client/auth/__pycache__/utils.cpython-312.pyc,,
mcp/client/auth/exceptions.py,sha256=uUDHX_P0S3R_tt7oAS8ALQrUgOiV2Dgc0QQAdaaBcW8,264
mcp/client/auth/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
mcp/client/auth/extensions/__pycache__/__init__.cpython-312.pyc,,
mcp/client/auth/extensions/__pycache__/client_credentials.cpython-312.pyc,,
mcp/client/auth/extensions/client_credentials.py,sha256=XvCarBQnB4DREuYEVygZbe0P9Wj7z8dSx_3SqajMKzQ,20897
mcp/client/auth/oauth2.py,sha256=X1w0eA4_3en9XVcicckZbse9J4KiWAX2aPRUqVIT0hQ,28394
mcp/client/auth/utils.py,sha256=Mm443kj9pHY09mUYflmr89W8jexZalvDS96b_31tUIE,12069
mcp/client/experimental/__init__.py,sha256=r923QPMrHQbLQYA_F48MLy2Y8ODdPWJhx8SuzhXcaEA,219
mcp/client/experimental/__pycache__/__init__.cpython-312.pyc,,
mcp/client/experimental/__pycache__/task_handlers.cpython-312.pyc,,
mcp/client/experimental/__pycache__/tasks.cpython-312.pyc,,
mcp/client/experimental/task_handlers.py,sha256=yDrCoiCha5iBBVpjqZ66uk3ZoDiQznqU29xKGY4Dh_Q,10791
mcp/client/experimental/tasks.py,sha256=LLEbfmIwCNk0PCpPSnhK6U0dcaqxENbdzLQXeGsqVjI,7055
mcp/client/session.py,sha256=A31De5OwhsBRD-iF32lraArJQ_vYHJYkYYrI_XudAX8,23495
mcp/client/session_group.py,sha256=wXt4sZI-WRXdy5PPv-hNwRhMuzEhKMkQf3bFvaOITEc,17423
mcp/client/sse.py,sha256=mUIAMK1Q5MIJ2HfvRp-R30V6nUpi-I0fd9_UtLeRI9g,8224
mcp/client/stdio/__init__.py,sha256=ojInz-HjRW8Wq0ExFIajmc9Uf8xrZFOZv5vzptxs9lQ,9403
mcp/client/stdio/__pycache__/__init__.cpython-312.pyc,,
mcp/client/streamable_http.py,sha256=jrAcPU2onG5z1JSpYCnbzy_gXQv__nYHGx5Amv22L1s,28324
mcp/client/websocket.py,sha256=mH6zD_nRnMr11uSFdDTy2TZ2YeS9S18v-JJ2rQ7tXck,3486
mcp/os/__init__.py,sha256=uqaGIfCF4I0IPeSsEEZMNwZuDF91U0WKAIbDcKzPRLo,43
mcp/os/__pycache__/__init__.cpython-312.pyc,,
mcp/os/posix/__init__.py,sha256=l_2j8jhhgw69s_-eH4dCDk4QYxNlxKGIpaOCvcbv1Qk,40
mcp/os/posix/__pycache__/__init__.cpython-312.pyc,,
mcp/os/posix/__pycache__/utilities.cpython-312.pyc,,
mcp/os/posix/utilities.py,sha256=mTEYV74M9z9s2deXWctpUGTS1MNtkOr7IYCXU3mxlNI,1930
mcp/os/win32/__init__.py,sha256=7xyI7KWpZhDS3omGEBcu3200Q-DjIsS7c-a-vrn28Y4,42
mcp/os/win32/__pycache__/__init__.cpython-312.pyc,,
mcp/os/win32/__pycache__/utilities.cpython-312.pyc,,
mcp/os/win32/utilities.py,sha256=M5j9NF9QhgCHqQeHYpc9z0ksFsNy1F43vYqQl3LXq-Y,10808
mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
mcp/server/__init__.py,sha256=jeMjAkvChhKLEy1fpeKJ4d_bT1vnnmuGm11otQ7ncBg,202
mcp/server/__main__.py,sha256=KakUSquF7R44Ugwg3N5VQCJsPnsEVrbwk-UnRHerVww,1328
mcp/server/__pycache__/__init__.cpython-312.pyc,,
mcp/server/__pycache__/__main__.cpython-312.pyc,,
mcp/server/__pycache__/elicitation.cpython-312.pyc,,
mcp/server/__pycache__/models.cpython-312.pyc,,
mcp/server/__pycache__/session.cpython-312.pyc,,
mcp/server/__pycache__/sse.cpython-312.pyc,,
mcp/server/__pycache__/stdio.cpython-312.pyc,,
mcp/server/__pycache__/streamable_http.cpython-312.pyc,,
mcp/server/__pycache__/streamable_http_manager.cpython-312.pyc,,
mcp/server/__pycache__/transport_security.cpython-312.pyc,,
mcp/server/__pycache__/validation.cpython-312.pyc,,
mcp/server/__pycache__/websocket.cpython-312.pyc,,
mcp/server/auth/__init__.py,sha256=xmxBzGAYvejOEzxqvZxiRkootIdlpp5WrCNiPKvuKdk,51
mcp/server/auth/__pycache__/__init__.cpython-312.pyc,,
mcp/server/auth/__pycache__/errors.cpython-312.pyc,,
mcp/server/auth/__pycache__/json_response.cpython-312.pyc,,
mcp/server/auth/__pycache__/provider.cpython-312.pyc,,
mcp/server/auth/__pycache__/routes.cpython-312.pyc,,
mcp/server/auth/__pycache__/settings.cpython-312.pyc,,
mcp/server/auth/errors.py,sha256=8YjlejJPl-qMjZrbJTDzMPBOAOITn0Da0pC5QWn9QdE,224
mcp/server/auth/handlers/__init__.py,sha256=T2ueQWVpLDbMIAiOcROyumxRwqa8Po5lA9zd_Cbt2Uc,58
mcp/server/auth/handlers/__pycache__/__init__.cpython-312.pyc,,
mcp/server/auth/handlers/__pycache__/authorize.cpython-312.pyc,,
mcp/server/auth/handlers/__pycache__/metadata.cpython-312.pyc,,
mcp/server/auth/handlers/__pycache__/register.cpython-312.pyc,,
mcp/server/auth/handlers/__pycache__/revoke.cpython-312.pyc,,
mcp/server/auth/handlers/__pycache__/token.cpython-312.pyc,,
mcp/server/auth/handlers/authorize.py,sha256=fAz-L-5Qv6KeHjpoBOAUE6sYgTuG0ydPA7y2xjb4pIM,9728
mcp/server/auth/handlers/metadata.py,sha256=mWPkrs1DfG-Qzq1nZU2HzwxSwk8K_vXe-ZpEDZ0k_QA,853
mcp/server/auth/handlers/register.py,sha256=CtH9c03oZtJgUoBVr-VgrAoJ6WXBw2RGNk5n70eBlPc,5928
mcp/server/auth/handlers/revoke.py,sha256=DIVjn09k7qTkAXrkTsRBVlR-XM9rsmTJzKlXyNdJqDE,3113
mcp/server/auth/handlers/token.py,sha256=yt5kUvB8zhBgONpYZJOQTFyoJZBhC0UKPUE3GQMkots,10223
mcp/server/auth/json_response.py,sha256=EMv3qAH62vRuw8XBHdFU3kYp0S8Jd6DjRGfwc7Jc9XU,377
mcp/server/auth/middleware/__init__.py,sha256=XhRUi_w-ie_QG7XT5EfqNG-NPZvXtJtgHSB_tPVYNIw,42
mcp/server/auth/middleware/__pycache__/__init__.cpython-312.pyc,,
mcp/server/auth/middleware/__pycache__/auth_context.cpython-312.pyc,,
mcp/server/auth/middleware/__pycache__/bearer_auth.cpython-312.pyc,,
mcp/server/auth/middleware/__pycache__/client_auth.cpython-312.pyc,,
mcp/server/auth/middleware/auth_context.py,sha256=0hYDUr2GL0VqTVQtCCZCDop2JwGox_IuD0XBZQbtpT0,1696
mcp/server/auth/middleware/bearer_auth.py,sha256=-t3Ar5bNuIJtYSlF2CsvmAozEX2uySo4chp2Rzgbw4s,4423
mcp/server/auth/middleware/client_auth.py,sha256=lIIGufkj8rwkNVjh63tPH1UOY5h4Bc08zuvGmubUz40,4723
mcp/server/auth/provider.py,sha256=itp10kM6TGcQGL_zMUVpQ28FK3p-q_zFK5V3CJNoHBE,9846
mcp/server/auth/routes.py,sha256=j4B5b2Pw2VJnCOq3bW2t3mRvgxJ3oI5wzQn0z3AlZ50,9131
mcp/server/auth/settings.py,sha256=Nj8tNCXANHMCmX6nxCa-GUrA9knJ9f8zCuMxMDFN4D4,1031
mcp/server/elicitation.py,sha256=euqjotipBszsirdZurr2fbKemRYwR7-zlZlijwMdSNY,6917
mcp/server/experimental/__init__.py,sha256=DtyLxeneqNnUc4ZDKeD9KBFEX9ku2iRwOqsME9k5Gvc,373
mcp/server/experimental/__pycache__/__init__.cpython-312.pyc,,
mcp/server/experimental/__pycache__/request_context.cpython-312.pyc,,
mcp/server/experimental/__pycache__/session_features.cpython-312.pyc,,
mcp/server/experimental/__pycache__/task_context.cpython-312.pyc,,
mcp/server/experimental/__pycache__/task_result_handler.cpython-312.pyc,,
mcp/server/experimental/__pycache__/task_support.cpython-312.pyc,,
mcp/server/experimental/request_context.py,sha256=MAH7Z-Xoe0vENzcPtu4_lVGywDZHp-7FaUJ8bYDt8Jo,8448
mcp/server/experimental/session_features.py,sha256=fwwIb-Uj2hhjnrE2ZOfEL5Y5UgNa8gg8SiIl5QpN8YA,7870
mcp/server/experimental/task_context.py,sha256=M970tK_ZM_mle0gRfgSTvd5NztUMW5Wx3yCYExRfo8I,23021
mcp/server/experimental/task_result_handler.py,sha256=EyTcsYcdwzK49_z8RnBfRX1WQKaFcEzKF3tnpEIUcvg,8379
mcp/server/experimental/task_support.py,sha256=gP2NiEIaycpRsLa0ThQG8VFOoMGUaoh0mrn4BNfQChQ,3691
mcp/server/fastmcp/__init__.py,sha256=4EnleAYdPF_hgPexfq2zxGRtU_Fd3ZrjXegKckuj-K8,297
mcp/server/fastmcp/__pycache__/__init__.cpython-312.pyc,,
mcp/server/fastmcp/__pycache__/exceptions.cpython-312.pyc,,
mcp/server/fastmcp/__pycache__/server.cpython-312.pyc,,
mcp/server/fastmcp/exceptions.py,sha256=q9djUDmpwmGEWcHI8q4UzJBtf7s7UtgL--OB7OaGzyQ,435
mcp/server/fastmcp/prompts/__init__.py,sha256=4BsMxoYolpoxg74xkkkzCFL8vvdkLVJ5cIPNs1ND1Jo,99
mcp/server/fastmcp/prompts/__pycache__/__init__.cpython-312.pyc,,
mcp/server/fastmcp/prompts/__pycache__/base.cpython-312.pyc,,
mcp/server/fastmcp/prompts/__pycache__/manager.cpython-312.pyc,,
mcp/server/fastmcp/prompts/base.py,sha256=s5-zpCjfd-LLbqMoa2oJnzUoVUGW4EVhi8ufvWSjHns,7088
mcp/server/fastmcp/prompts/manager.py,sha256=IXIv__muOQhXgipCmKWJ4cyPjjawWkjmeahe6G29oyU,1835
mcp/server/fastmcp/resources/__init__.py,sha256=e4S369jBoJt07ez9_ZaJefzGfz4kr9nGwG4KPMzMHc8,464
mcp/server/fastmcp/resources/__pycache__/__init__.cpython-312.pyc,,
mcp/server/fastmcp/resources/__pycache__/base.cpython-312.pyc,,
mcp/server/fastmcp/resources/__pycache__/resource_manager.cpython-312.pyc,,
mcp/server/fastmcp/resources/__pycache__/templates.cpython-312.pyc,,
mcp/server/fastmcp/resources/__pycache__/types.cpython-312.pyc,,
mcp/server/fastmcp/resources/base.py,sha256=aw7d46dfMGCz9fYNtShxCJ9PlnNGmoev4JfPpstC8xI,1852
mcp/server/fastmcp/resources/resource_manager.py,sha256=f_yS7f4-hs-RryiLHlxXmf68bHd4cZnIPkmXbwzhaVg,4007
mcp/server/fastmcp/resources/templates.py,sha256=dLcTfoEV6nu8CkDq7WsNI1qmwGFan4mMewvYUroLPPA,4947
mcp/server/fastmcp/resources/types.py,sha256=g6bfXFNGGfoOGiq37TMvG87kxXrgjSgV6UzLS4M6Lz4,7214
mcp/server/fastmcp/server.py,sha256=q9Jb2B34oDCO66kM3htygwfYUsfv4Ku54KXGrPW3ubc,52706
mcp/server/fastmcp/tools/__init__.py,sha256=ZboxhyMJDl87Svjov8YwNYwNZi55P9VhmpTjBZLesnk,96
mcp/server/fastmcp/tools/__pycache__/__init__.cpython-312.pyc,,
mcp/server/fastmcp/tools/__pycache__/base.cpython-312.pyc,,
mcp/server/fastmcp/tools/__pycache__/tool_manager.cpython-312.pyc,,
mcp/server/fastmcp/tools/base.py,sha256=h2JrpiTTMhj_t1QhQNyIhFPjMTD97-rciQnUe8YAylQ,4740
mcp/server/fastmcp/tools/tool_manager.py,sha256=rNjJ6_ug6HZEJuYIaN7qqTGgEqiCTha6T0eeSZG9KnY,2972
mcp/server/fastmcp/utilities/__init__.py,sha256=-imJ8S-rXmbXMWeDamldP-dHDqAPg_wwmPVz-LNX14E,31
mcp/server/fastmcp/utilities/__pycache__/__init__.cpython-312.pyc,,
mcp/server/fastmcp/utilities/__pycache__/context_injection.cpython-312.pyc,,
mcp/server/fastmcp/utilities/__pycache__/func_metadata.cpython-312.pyc,,
mcp/server/fastmcp/utilities/__pycache__/logging.cpython-312.pyc,,
mcp/server/fastmcp/utilities/__pycache__/types.cpython-312.pyc,,
mcp/server/fastmcp/utilities/context_injection.py,sha256=BVm4Svi5RK-nlscwYZT75WuLPccRAJ_INdZxxVSM-lg,2028
mcp/server/fastmcp/utilities/func_metadata.py,sha256=cvcvHckZW5EoC4TCro20ZujCicowaeGN-o3-sN9Z3rI,22370
mcp/server/fastmcp/utilities/logging.py,sha256=e8kBHAYHB00gntMTaWMN6uT4kwiiOdL14qDXEZU0x-k,1063
mcp/server/fastmcp/utilities/types.py,sha256=xXRshurGRIjVnr1lVPwcZomSSN4_wvxpNb2jS6RUCw4,3546
mcp/server/lowlevel/__init__.py,sha256=mS7slrVoWzHMYqDHDIJ7oRZxwPZG_I63UVQiJN311YY,93
mcp/server/lowlevel/__pycache__/__init__.cpython-312.pyc,,
mcp/server/lowlevel/__pycache__/experimental.cpython-312.pyc,,
mcp/server/lowlevel/__pycache__/func_inspection.cpython-312.pyc,,
mcp/server/lowlevel/__pycache__/helper_types.cpython-312.pyc,,
mcp/server/lowlevel/__pycache__/server.cpython-312.pyc,,
mcp/server/lowlevel/experimental.py,sha256=rczwf5G6UGX-nAkhzI29PERWuFUjLCRSS0pjPfp4J_U,10596
mcp/server/lowlevel/func_inspection.py,sha256=uLEpY5IHgWicIfbYbaI4aDYfUgMRxuFdTu20duvH2pw,2466
mcp/server/lowlevel/helper_types.py,sha256=LVC0N6JMPynVs4fMJSfBmqKIigHNLsRNhBvbU06rg6A,251
mcp/server/lowlevel/server.py,sha256=K5TfEBBkkWrfiefC8KylfiS7t0KR1FztjGNF7pUu3OE,34872
mcp/server/models.py,sha256=w-xEPy_qGds2_bEpejN6iaWeh0UvMtKqwlXzPN_ChZ0,422
mcp/server/session.py,sha256=A0pB1LsQnWgJUowQDhUy45BZHY2_qi29fuJ26jLPc0k,27555
mcp/server/sse.py,sha256=QqzE9gWpG35HfQo6gbsCmZPV4ud02EtZcewNGTwKvF8,10826
mcp/server/stdio.py,sha256=FGlkS_ya_DojCTP-L7rYhG7F8twT9jkoJrywYOjJQUE,3356
mcp/server/streamable_http.py,sha256=BfpmfeBdrZ7DYuM54IQQsNndwZ_Us3VrybF8fk8DFGo,47096
mcp/server/streamable_http_manager.py,sha256=yVYbGB2M4Yl3JRAQPIstdxtdcVtb6P54IXM0dtSM-jM,14217
mcp/server/transport_security.py,sha256=T8oLE1lh2WXW6cVvPiNUSmG5WmxMvdCCXkm7JdSvmIs,4938
mcp/server/validation.py,sha256=owYWMCEg5KLesnXmNbyaTifJyJKJYp79FszXgLPsG7c,3633
mcp/server/websocket.py,sha256=sw9aSmyhOZlqK-jPQd9RS03zn9XaLR4D6HL6vi8DtBY,2352
mcp/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
mcp/shared/__pycache__/__init__.cpython-312.pyc,,
mcp/shared/__pycache__/_httpx_utils.cpython-312.pyc,,
mcp/shared/__pycache__/auth.cpython-312.pyc,,
mcp/shared/__pycache__/auth_utils.cpython-312.pyc,,
mcp/shared/__pycache__/context.cpython-312.pyc,,
mcp/shared/__pycache__/exceptions.cpython-312.pyc,,
mcp/shared/__pycache__/memory.cpython-312.pyc,,
mcp/shared/__pycache__/message.cpython-312.pyc,,
mcp/shared/__pycache__/metadata_utils.cpython-312.pyc,,
mcp/shared/__pycache__/progress.cpython-312.pyc,,
mcp/shared/__pycache__/response_router.cpython-312.pyc,,
mcp/shared/__pycache__/session.cpython-312.pyc,,
mcp/shared/__pycache__/tool_name_validation.cpython-312.pyc,,
mcp/shared/__pycache__/version.cpython-312.pyc,,
mcp/shared/_httpx_utils.py,sha256=bfvypq5zsbvL4dgtNfX-lp8R_FqmzDtWEK61K7Y-Sos,2906
mcp/shared/auth.py,sha256=SRxs5E58Jkso6pZlTy-sDFXxDCi2pzYB_8gGbzz25mQ,7045
mcp/shared/auth_utils.py,sha256=aX1l1S3pDlE_9r0Fv25I76huJp1wqB25iUROb25xuuc,2881
mcp/shared/context.py,sha256=QMRHwXCIJsvf4U3vcgqSAXaaUEMKhfj_9XlCI-kUknE,1188
mcp/shared/exceptions.py,sha256=glHYWFVmdInhHRnlwrpr5w_iALLM0OlNZAM3djNBDXg,2433
mcp/shared/experimental/__init__.py,sha256=BhhD176Lv_NmLZ3nK6n3zVyCbCxEj5VMwPuqjm3fqcs,209
mcp/shared/experimental/__pycache__/__init__.cpython-312.pyc,,
mcp/shared/experimental/tasks/__init__.py,sha256=jYCm-mbvvEblzcSWEvQMTlbRD3iUJss-PGF4sMI9OMc,433
mcp/shared/experimental/tasks/__pycache__/__init__.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/capabilities.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/context.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/helpers.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/in_memory_task_store.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/message_queue.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/polling.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/resolver.cpython-312.pyc,,
mcp/shared/experimental/tasks/__pycache__/store.cpython-312.pyc,,
mcp/shared/experimental/tasks/capabilities.py,sha256=wkO_u4698o5yYtV8RPCRj0oaKWfQLMk7l05-ICdjGmo,3571
mcp/shared/experimental/tasks/context.py,sha256=an3XBnocKUwdlKX8hR71wowzDixBKwsUe9uCBXrsq1w,2875
mcp/shared/experimental/tasks/helpers.py,sha256=OF7obHXpVoQmrqft-ZcEXOA9bY8xHvnMfd2YGz3xeLo,5517
mcp/shared/experimental/tasks/in_memory_task_store.py,sha256=cmCPo59XOQPe-kF5uG1Yd-6nHZDaOhrEZJZc35v3I8U,7558
mcp/shared/experimental/tasks/message_queue.py,sha256=vf5Dmwb-XkpytbK6TixouFWj8ci0wxeN2STpj7IUoiw,7436
mcp/shared/experimental/tasks/polling.py,sha256=6BCbo7hYGG19bG_RJUYvnYLJ65WHWbWJ9gwri7Aiw80,1369
mcp/shared/experimental/tasks/resolver.py,sha256=5VvPexlwcL1TZq2j_7fAdMziYlbHDNHk1UW4l1hVH1M,1801
mcp/shared/experimental/tasks/store.py,sha256=552Kbp7UqLoIruPZnrIkZFu5m0iiQz0quNuHOKI-Yts,3808
mcp/shared/memory.py,sha256=DtPFbfalB14Nm5hZS5zZLAwrIkqwZFVcBUwFcBAU1TM,3951
mcp/shared/message.py,sha256=K7wy_fCaPo7p0r8_2Pd223Ab0Q9DMABuCitK3xq0cQI,1550
mcp/shared/metadata_utils.py,sha256=9Tp9b0PkfjBhm2SlwHnod1W4Bf6vZB0p5J2E7Sv25U4,1712
mcp/shared/progress.py,sha256=Ys4V_DTQhYsug6KS6Bb3E4T0CDyOOaIecIXAIMFs1tU,1756
mcp/shared/response_router.py,sha256=en9M764wGHNkWl6dn9Ki7amIRCclHaKsfbnTfpL9KR0,2043
mcp/shared/session.py,sha256=RzwVHtUexhdGbmO1JcQqDzHbmXwoEr54R33v9A4-m6A,24224
mcp/shared/tool_name_validation.py,sha256=mTEvgzsMskayyilLaIkP7lIaA4je8cnkj9xYIc6htgo,4531
mcp/shared/version.py,sha256=GKwM5WHAwd2Dmrq7TyrAHEGWhTO_9UKJJUmC791JcMk,156
mcp/types.py,sha256=aCQQnNHquvQ8XauCmoMBWxuI7JrhSXZeaBSvryP5veU,64908
@@ -0,0 +1,4 @@
Wheel-Version: 1.0
Generator: hatchling 1.29.0
Root-Is-Purelib: true
Tag: py3-none-any
@@ -0,0 +1,2 @@
[console_scripts]
mcp = mcp.cli:app [cli]
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Anthropic, PBC
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.