Extract protocol types into a standalone mcp-types package by Kludex · Pull Request #2762 · modelcontextprotocol/python-sdk · GitHub
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 21 additions & 11 deletions README.v2.md
10 changes: 5 additions & 5 deletions docs/experimental/tasks-client.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Call a tool as a task and poll for the result:

```python
from mcp.client.session import ClientSession
from mcp.types import CallToolResult
from mcp_types import CallToolResult

async with ClientSession(read, write) as session:
await session.initialize()
Expand Down Expand Up @@ -96,7 +96,7 @@ The elicitation callback (set during session creation) handles the actual user i
To handle elicitation requests from the server, provide a callback when creating the session:

```python
from mcp.types import ElicitRequestParams, ElicitResult
from mcp_types import ElicitRequestParams, ElicitResult

async def handle_elicitation(context, params: ElicitRequestParams) -> ElicitResult:
# Display the message to the user
Expand Down Expand Up @@ -125,7 +125,7 @@ async with ClientSession(
Similarly, handle sampling requests with a callback:

```python
from mcp.types import CreateMessageRequestParams, CreateMessageResult, TextContent
from mcp_types import CreateMessageRequestParams, CreateMessageResult, TextContent

async def handle_sampling(context, params: CreateMessageRequestParams) -> CreateMessageResult:
# In a real implementation, call your LLM here
Expand Down Expand Up @@ -207,7 +207,7 @@ Register task handlers to declare what task-augmented requests your client accep

```python
from mcp.client.experimental.task_handlers import ExperimentalTaskHandlers
from mcp.types import (
from mcp_types import (
CreateTaskResult, GetTaskResult, GetTaskPayloadResult,
TaskMetadata, ElicitRequestParams,
)
Expand Down Expand Up @@ -283,7 +283,7 @@ A client that handles all task scenarios:
import anyio
from mcp.client.session import ClientSession
from mcp.client.stdio import stdio_client
from mcp.types import CallToolResult, ElicitRequestParams, ElicitResult
from mcp_types import CallToolResult, ElicitRequestParams, ElicitResult


async def elicitation_callback(context, params: ElicitRequestParams) -> ElicitResult:
Expand Down
14 changes: 7 additions & 7 deletions docs/experimental/tasks-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ The simplest way to add task support:
```python
from mcp.server import Server
from mcp.server.experimental.task_context import ServerTaskContext
from mcp.types import CallToolResult, CreateTaskResult, TextContent, Tool, ToolExecution, TASK_REQUIRED
from mcp_types import CallToolResult, CreateTaskResult, TextContent, Tool, ToolExecution, TASK_REQUIRED

server = Server("my-server")
server.experimental.enable_tasks() # Registers all task handlers automatically
Expand Down Expand Up @@ -58,7 +58,7 @@ That's it. `enable_tasks()` automatically:
Tools declare task support via the `execution.taskSupport` field:

```python
from mcp.types import Tool, ToolExecution, TASK_REQUIRED, TASK_OPTIONAL, TASK_FORBIDDEN
from mcp_types import Tool, ToolExecution, TASK_REQUIRED, TASK_OPTIONAL, TASK_FORBIDDEN

Tool(
name="my_tool",
Expand Down Expand Up @@ -199,7 +199,7 @@ async def work(task: ServerTaskContext) -> CallToolResult:
Tasks can request LLM completions from the client:

```python
from mcp.types import SamplingMessage, TextContent
from mcp_types import SamplingMessage, TextContent

async def work(task: ServerTaskContext) -> CallToolResult:
await task.update_status("Generating response...")
Expand Down Expand Up @@ -256,7 +256,7 @@ For production, implement `TaskStore` with persistent storage:

```python
from mcp.shared.experimental.tasks.store import TaskStore
from mcp.types import Task, TaskMetadata, Result
from mcp_types import Task, TaskMetadata, Result

class RedisTaskStore(TaskStore):
def __init__(self, redis_client):
Expand Down Expand Up @@ -299,7 +299,7 @@ A server with multiple task-supporting tools:
```python
from mcp.server import Server
from mcp.server.experimental.task_context import ServerTaskContext
from mcp.types import (
from mcp_types import (
CallToolResult, CreateTaskResult, TextContent, Tool, ToolExecution,
SamplingMessage, TASK_REQUIRED,
)
Expand Down Expand Up @@ -412,7 +412,7 @@ import uvicorn

from mcp.server import Server
from mcp.server.experimental.task_context import ServerTaskContext
from mcp.types import (
from mcp_types import (
CallToolResult, CreateTaskResult, TextContent, Tool, ToolExecution, TASK_REQUIRED,
)

Expand Down Expand Up @@ -468,7 +468,7 @@ Test task functionality with the SDK's testing utilities:
import pytest
import anyio
from mcp.client.session import ClientSession
from mcp.types import CallToolResult
from mcp_types import CallToolResult


@pytest.mark.anyio
Expand Down
6 changes: 3 additions & 3 deletions docs/experimental/tasks.md
Loading