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
13 changed files with 1040 additions and 867 deletions

View file

@ -2,10 +2,10 @@ import threading
from typing import Any
import pytest
from mcp_types import EmbeddedResource, TextContent, TextResourceContents
from mcp.server.mcpserver import Context
from mcp.server.mcpserver.prompts.base import AssistantMessage, Message, Prompt, UserMessage
from mcp.types import EmbeddedResource, TextContent, TextResourceContents
class TestRenderPrompt:

View file

@ -1,9 +1,9 @@
import pytest
from mcp_types import TextContent
from mcp.server.mcpserver import Context
from mcp.server.mcpserver.prompts.base import Prompt, UserMessage
from mcp.server.mcpserver.prompts.manager import PromptManager
from mcp.types import TextContent
class TestPromptManager:

View file

@ -3,12 +3,12 @@ import threading
from typing import Any
import pytest
from mcp_types import Annotations
from pydantic import BaseModel
from mcp.server.mcpserver import Context, MCPServer
from mcp.server.mcpserver.exceptions import ResourceError
from mcp.server.mcpserver.resources import FunctionResource, ResourceTemplate
from mcp.types import Annotations
class TestResourceTemplate:

View file

@ -1,8 +1,8 @@
import pytest
from mcp_types import Annotations
from mcp.server.mcpserver import MCPServer
from mcp.server.mcpserver.resources import FunctionResource, Resource
from mcp.types import Annotations
class TestResourceValidation:

View file

@ -2,14 +2,15 @@
from typing import Any, Literal
import mcp_types as types
import pytest
from mcp_types import ElicitRequestParams, ElicitResult, TextContent
from pydantic import BaseModel, Field
from mcp import Client, types
from mcp import Client
from mcp.client import ClientRequestContext
from mcp.client.session import ElicitationFnT
from mcp.server.mcpserver import Context, MCPServer
from mcp.types import ElicitRequestParams, ElicitResult, TextContent
# Shared schema for basic tests

View file

@ -10,11 +10,11 @@ from typing import Annotated, Any, Final, NamedTuple, TypedDict
import annotated_types
import pytest
from dirty_equals import IsPartialDict
from mcp_types import CallToolResult
from pydantic import BaseModel, Field
from mcp.server.mcpserver.exceptions import InvalidSignature
from mcp.server.mcpserver.utilities.func_metadata import func_metadata
from mcp.types import CallToolResult
class SomeInputModelA(BaseModel):

View file

@ -13,22 +13,7 @@ import json
import pytest
from inline_snapshot import snapshot
from examples.snippets.servers import (
basic_prompt,
basic_resource,
basic_tool,
completion,
elicitation,
mcpserver_quickstart,
notifications,
sampling,
structured_output,
tool_progress,
)
from mcp.client import Client, ClientRequestContext
from mcp.shared.session import RequestResponder
from mcp.types import (
from mcp_types import (
ClientResult,
CreateMessageRequestParams,
CreateMessageResult,
@ -51,6 +36,21 @@ from mcp.types import (
ToolListChangedNotification,
)
from examples.snippets.servers import (
basic_prompt,
basic_resource,
basic_tool,
completion,
elicitation,
mcpserver_quickstart,
notifications,
sampling,
structured_output,
tool_progress,
)
from mcp.client import Client, ClientRequestContext
from mcp.shared.session import RequestResponder
pytestmark = pytest.mark.anyio

View file

@ -5,20 +5,7 @@ from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from inline_snapshot import snapshot
from pydantic import BaseModel
from starlette.applications import Starlette
from starlette.routing import Mount, Route
from mcp.client import Client
from mcp.server.context import ServerRequestContext
from mcp.server.mcpserver import Context, MCPServer
from mcp.server.mcpserver.exceptions import ResourceNotFoundError, ToolError
from mcp.server.mcpserver.prompts.base import Message, UserMessage
from mcp.server.mcpserver.resources import FileResource, FunctionResource
from mcp.server.mcpserver.utilities.types import Audio, Image
from mcp.server.transport_security import TransportSecuritySettings
from mcp.shared.exceptions import MCPError
from mcp.types import (
from mcp_types import (
INTERNAL_ERROR,
INVALID_PARAMS,
AudioContent,
@ -43,6 +30,19 @@ from mcp.types import (
TextContent,
TextResourceContents,
)
from pydantic import BaseModel
from starlette.applications import Starlette
from starlette.routing import Mount, Route
from mcp.client import Client
from mcp.server.context import ServerRequestContext
from mcp.server.mcpserver import Context, MCPServer
from mcp.server.mcpserver.exceptions import ResourceNotFoundError, ToolError
from mcp.server.mcpserver.prompts.base import Message, UserMessage
from mcp.server.mcpserver.resources import FileResource, FunctionResource
from mcp.server.mcpserver.utilities.types import Audio, Image
from mcp.server.transport_security import TransportSecuritySettings
from mcp.shared.exceptions import MCPError
pytestmark = pytest.mark.anyio

View file

@ -1,12 +1,12 @@
"""Integration tests for title field functionality."""
import pytest
from mcp_types import Prompt, Resource, ResourceTemplate, Tool, ToolAnnotations
from mcp import Client
from mcp.server.mcpserver import MCPServer
from mcp.server.mcpserver.resources import FunctionResource
from mcp.shared.metadata_utils import get_display_name
from mcp.types import Prompt, Resource, ResourceTemplate, Tool, ToolAnnotations
@pytest.mark.anyio

View file

@ -4,6 +4,7 @@ from dataclasses import dataclass
from typing import Any, TypedDict
import pytest
from mcp_types import CallToolResult, TextContent, ToolAnnotations
from pydantic import BaseModel
from mcp.server.context import LifespanContextT, RequestT
@ -11,7 +12,6 @@ from mcp.server.mcpserver import Context, MCPServer
from mcp.server.mcpserver.exceptions import ToolError
from mcp.server.mcpserver.tools import Tool, ToolManager
from mcp.server.mcpserver.utilities.func_metadata import ArgModelBase, FuncMetadata
from mcp.types import CallToolResult, TextContent, ToolAnnotations
class TestAddTools:

View file

@ -1,14 +1,15 @@
"""Test URL mode elicitation feature (SEP 1036)."""
import anyio
import mcp_types as types
import pytest
from mcp_types import ElicitRequestParams, ElicitResult, TextContent
from pydantic import BaseModel, Field
from mcp import Client, types
from mcp import Client
from mcp.client import ClientRequestContext
from mcp.server.elicitation import CancelledElicitation, DeclinedElicitation, elicit_url
from mcp.server.mcpserver import Context, MCPServer
from mcp.types import ElicitRequestParams, ElicitResult, TextContent
@pytest.mark.anyio

View file

@ -1,9 +1,10 @@
"""Test that UrlElicitationRequiredError is properly propagated as MCP error."""
import mcp_types as types
import pytest
from inline_snapshot import snapshot
from mcp import Client, ErrorData, types
from mcp import Client, ErrorData
from mcp.server.mcpserver import Context, MCPServer
from mcp.shared.exceptions import MCPError, UrlElicitationRequiredError

View file

@ -1,6 +1,7 @@
import mcp_types as types
import pytest
from mcp import Client, types
from mcp import Client
from mcp.server.mcpserver import Context, MCPServer
from mcp.server.mcpserver.tools.base import Tool
from mcp.shared.exceptions import MCPError