Split protocol types into a standalone mcp-types package (#2973)

This commit is contained in:
Marcelo Trylesinski 2026-06-25 19:18:38 +02:00 • committed by GitHub
commit 0ee7f1b293
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -419,10 +419,10 @@ For full control over tool responses including the `_meta` field (for passing da
from typing import Annotated
from mcp_types import CallToolResult, TextContent
from pydantic import BaseModel
from mcp.server.mcpserver import MCPServer
from mcp.types import CallToolResult, TextContent
mcp = MCPServer("CallToolResult Example")
@ -739,9 +739,10 @@ uv run completion-client
import asyncio
import os
from mcp_types import PromptReference, ResourceTemplateReference
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from mcp.types import PromptReference, ResourceTemplateReference
# Create server parameters for stdio connection
server_params = StdioServerParameters(
@ -828,11 +829,11 @@ like OAuth flows, credential collection, or payment processing.
import uuid
from mcp_types import ElicitRequestURLParams
from pydantic import BaseModel, Field
from mcp.server.mcpserver import Context, MCPServer
from mcp.shared.exceptions import UrlElicitationRequiredError
from mcp.types import ElicitRequestURLParams
mcp = MCPServer(name="Elicitation Example")
@ -937,8 +938,9 @@ Tools can interact with LLMs through sampling (generating text):
<!-- snippet-source examples/snippets/servers/sampling.py -->
```python
from mcp_types import SamplingMessage, TextContent
from mcp.server.mcpserver import Context, MCPServer
from mcp.types import SamplingMessage, TextContent
mcp = MCPServer(name="Sampling Example")
@ -1647,8 +1649,9 @@ from collections.abc import AsyncIterator
from contextlib import asynccontextmanager
from typing import TypedDict
import mcp_types as types
import mcp.server.stdio
from mcp import types
from mcp.server import Server, ServerRequestContext
@ -1759,8 +1762,9 @@ uv run examples/snippets/servers/lowlevel/basic.py
import asyncio
import mcp_types as types
import mcp.server.stdio
from mcp import types
from mcp.server import Server, ServerRequestContext
@ -1836,8 +1840,9 @@ uv run examples/snippets/servers/lowlevel/structured_output.py
import asyncio
import json
import mcp_types as types
import mcp.server.stdio
from mcp import types
from mcp.server import Server, ServerRequestContext
@ -1928,8 +1933,9 @@ uv run examples/snippets/servers/lowlevel/direct_call_tool_result.py
import asyncio
import mcp_types as types
import mcp.server.stdio
from mcp import types
from mcp.server import Server, ServerRequestContext
@ -1999,7 +2005,8 @@ For servers that need to handle large datasets, the low-level server provides pa
```python
"""Example of implementing pagination with the low-level MCP server."""
from mcp import types
import mcp_types as types
from mcp.server import Server, ServerRequestContext
# Sample data to paginate
@ -2045,9 +2052,10 @@ _Full example: [examples/snippets/servers/pagination_example.py](https://github.
import asyncio
from mcp_types import PaginatedRequestParams, Resource
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
from mcp.types import PaginatedRequestParams, Resource
async def list_all_resources() -> None:
@ -2107,7 +2115,9 @@ uv run client
import asyncio
import os
from mcp import ClientSession, StdioServerParameters, types
import mcp_types as types
from mcp import ClientSession, StdioServerParameters
from mcp.client.context import ClientRequestContext
from mcp.client.stdio import stdio_client
@ -2417,7 +2427,9 @@ When calling tools through MCP, the `CallToolResult` object contains the tool's
import asyncio
from mcp import ClientSession, StdioServerParameters, types
import mcp_types as types
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client