Skip to content

Commit c554477

Browse files
committed
style: Fix imports and line length formatting
1 parent 2b81538 commit c554477

37 files changed

+232
-125
lines changed

examples/fastmcp/complex_inputs.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
Demonstrates validation via pydantic with complex models.
55
"""
66

7-
from pydantic import BaseModel, Field
87
from typing import Annotated
8+
9+
from pydantic import BaseModel, Field
10+
911
from mcp.server.fastmcp import FastMCP
1012

1113
mcp = FastMCP("Shrimp Tank")

examples/fastmcp/memory.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
"""
88
Recursive memory system inspired by the human brain's clustering of memories.
9-
Uses OpenAI's 'text-embedding-3-small' model and pgvector for efficient similarity search.
9+
Uses OpenAI's 'text-embedding-3-small' model and pgvector for efficient
10+
similarity search.
1011
"""
1112

1213
import asyncio
@@ -111,7 +112,8 @@ async def save(self, deps: Deps):
111112
if self.id is None:
112113
result = await conn.fetchrow(
113114
"""
114-
INSERT INTO memories (content, summary, importance, access_count, timestamp, embedding)
115+
INSERT INTO memories (content, summary, importance, access_count,
116+
timestamp, embedding)
115117
VALUES ($1, $2, $3, $4, $5, $6)
116118
RETURNING id
117119
""",
@@ -336,7 +338,8 @@ async def initialize_database():
336338
timestamp DOUBLE PRECISION NOT NULL,
337339
embedding vector(1536) NOT NULL
338340
);
339-
CREATE INDEX IF NOT EXISTS idx_memories_embedding ON memories USING hnsw (embedding vector_l2_ops);
341+
CREATE INDEX IF NOT EXISTS idx_memories_embedding ON memories
342+
USING hnsw (embedding vector_l2_ops);
340343
""")
341344
finally:
342345
await pool.close()

examples/fastmcp/readme-quickstart.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from mcp.server.fastmcp import FastMCP
22

3-
43
# Create an MCP server
54
mcp = FastMCP("Demo")
65

examples/fastmcp/screenshot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
"""
66

77
import io
8+
89
from mcp.server.fastmcp import FastMCP
910
from mcp.server.fastmcp.utilities.types import Image
1011

11-
1212
# Create server
1313
mcp = FastMCP("Screenshot Demo", dependencies=["pyautogui", "Pillow"])
1414

examples/fastmcp/simple_echo.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from mcp.server.fastmcp import FastMCP
66

7-
87
# Create server
98
mcp = FastMCP("Echo Server")
109

examples/fastmcp/text_me.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"""
2020

2121
from typing import Annotated
22+
2223
import httpx
2324
from pydantic import BeforeValidator
2425
from pydantic_settings import BaseSettings, SettingsConfigDict

examples/servers/simple-resource/mcp_simple_resource/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import anyio
22
import click
33
import mcp.types as types
4-
from pydantic import AnyUrl
54
from mcp.server.lowlevel import Server
5+
from pydantic import AnyUrl
66

77
SAMPLE_RESOURCES = {
88
"greeting": "Hello! This is a sample text resource.",

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ dev-dependencies = [
4747
"trio>=0.26.2",
4848
"pytest-flakefinder>=1.1.0",
4949
"pytest-xdist>=3.6.1",
50-
"pytest-asyncio>=0.24.0",
5150
]
5251

5352
[build-system]

src/mcp/cli/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@
22

33
from .cli import app
44

5-
65
if __name__ == "__main__":
76
app()

src/mcp/cli/claude.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ def update_claude_config(
4848
config_dir = get_claude_config_path()
4949
if not config_dir:
5050
raise RuntimeError(
51-
"Claude Desktop config directory not found. Please ensure Claude Desktop "
52-
"is installed and has been run at least once to initialize its configuration."
51+
"Claude Desktop config directory not found. Please ensure Claude Desktop"
52+
" is installed and has been run at least once to initialize its config."
5353
)
5454

5555
config_file = config_dir / "claude_desktop_config.json"

src/mcp/cli/cli.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,8 @@ def run(
295295
"""Run a MCP server.
296296
297297
The server can be specified in two ways:
298-
1. Module approach: server.py - runs the module directly, expecting a server.run() call
298+
1. Module approach: server.py - runs the module directly, expecting a server.run()
299+
call
299300
2. Import approach: server.py:app - imports and runs the specified server object
300301
301302
Note: This command runs the server directly. You are responsible for ensuring
@@ -346,7 +347,8 @@ def install(
346347
typer.Option(
347348
"--name",
348349
"-n",
349-
help="Custom name for the server (defaults to server's name attribute or file name)",
350+
help="Custom name for the server (defaults to server's name attribute or"
351+
" file name)",
350352
),
351353
] = None,
352354
with_editable: Annotated[
@@ -410,7 +412,8 @@ def install(
410412
logger.error("Claude app not found")
411413
sys.exit(1)
412414

413-
# Try to import server to get its name, but fall back to file name if dependencies missing
415+
# Try to import server to get its name, but fall back to file name if dependencies
416+
# missing
414417
name = server_name
415418
server = None
416419
if not name:
@@ -419,7 +422,8 @@ def install(
419422
name = server.name
420423
except (ImportError, ModuleNotFoundError) as e:
421424
logger.debug(
422-
"Could not import server (likely missing dependencies), using file name",
425+
"Could not import server (likely missing dependencies), using file"
426+
" name",
423427
extra={"error": str(e)},
424428
)
425429
name = file.stem

src/mcp/server/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .lowlevel import Server, NotificationOptions
21
from .fastmcp import FastMCP
2+
from .lowlevel import NotificationOptions, Server
33

44
__all__ = ["Server", "FastMCP", "NotificationOptions"]

src/mcp/server/fastmcp/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
"""FastMCP - A more ergonomic interface for MCP servers."""
22

33
from importlib.metadata import version
4-
from .server import FastMCP, Context
4+
5+
from .server import Context, FastMCP
56
from .utilities.types import Image
67

78
__version__ = version("mcp")

src/mcp/server/fastmcp/prompts/base.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
"""Base classes for FastMCP prompts."""
22

3-
import json
4-
from typing import Any, Literal, Sequence, Awaitable
53
import inspect
4+
import json
65
from collections.abc import Callable
6+
from typing import Any, Awaitable, Literal, Sequence
77

8-
from pydantic import BaseModel, Field, TypeAdapter, validate_call
9-
from mcp.types import TextContent, ImageContent, EmbeddedResource
108
import pydantic_core
9+
from pydantic import BaseModel, Field, TypeAdapter, validate_call
10+
11+
from mcp.types import EmbeddedResource, ImageContent, TextContent
1112

1213
CONTENT_TYPES = TextContent | ImageContent | EmbeddedResource
1314

src/mcp/server/fastmcp/resources/__init__.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
from .base import Resource
2+
from .resource_manager import ResourceManager
3+
from .templates import ResourceTemplate
24
from .types import (
3-
TextResource,
45
BinaryResource,
5-
FunctionResource,
6+
DirectoryResource,
67
FileResource,
8+
FunctionResource,
79
HttpResource,
8-
DirectoryResource,
10+
TextResource,
911
)
10-
from .templates import ResourceTemplate
11-
from .resource_manager import ResourceManager
1212

1313
__all__ = [
1414
"Resource",

src/mcp/server/fastmcp/resources/resource_manager.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""Resource manager functionality."""
22

33
from typing import Callable
4-
from collections.abc import Iterable
54

65
from pydantic import AnyUrl
76

src/mcp/server/fastmcp/resources/types.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
"""Concrete resource implementations."""
22

3-
import anyio
43
import json
5-
from pathlib import Path
6-
from typing import Any, Callable
74
from collections.abc import Callable
5+
from pathlib import Path
6+
from typing import Any
87

8+
import anyio
99
import httpx
1010
import pydantic.json
1111
import pydantic_core

src/mcp/server/fastmcp/server.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
"""FastMCP - A more ergonomic interface for MCP servers."""
22

3-
import anyio
43
import functools
54
import inspect
65
import json
76
import re
87
from itertools import chain
98
from typing import Any, Callable, Literal, Sequence
10-
from collections.abc import Iterable
119

10+
import anyio
1211
import pydantic_core
13-
from pydantic import Field
1412
import uvicorn
13+
from pydantic import BaseModel, Field
14+
from pydantic.networks import AnyUrl
15+
from pydantic_settings import BaseSettings, SettingsConfigDict
16+
17+
from mcp.server.fastmcp.exceptions import ResourceError
18+
from mcp.server.fastmcp.prompts import Prompt, PromptManager
19+
from mcp.server.fastmcp.resources import FunctionResource, Resource, ResourceManager
20+
from mcp.server.fastmcp.tools import ToolManager
21+
from mcp.server.fastmcp.utilities.logging import configure_logging, get_logger
22+
from mcp.server.fastmcp.utilities.types import Image
1523
from mcp.server.lowlevel import Server as MCPServer
1624
from mcp.server.sse import SseServerTransport
1725
from mcp.server.stdio import stdio_server
@@ -24,6 +32,8 @@
2432
)
2533
from mcp.types import (
2634
Prompt as MCPPrompt,
35+
)
36+
from mcp.types import (
2737
PromptArgument as MCPPromptArgument,
2838
)
2939
from mcp.types import (
@@ -35,16 +45,6 @@
3545
from mcp.types import (
3646
Tool as MCPTool,
3747
)
38-
from pydantic import BaseModel
39-
from pydantic.networks import AnyUrl
40-
from pydantic_settings import BaseSettings, SettingsConfigDict
41-
42-
from mcp.server.fastmcp.exceptions import ResourceError
43-
from mcp.server.fastmcp.prompts import Prompt, PromptManager
44-
from mcp.server.fastmcp.resources import FunctionResource, Resource, ResourceManager
45-
from mcp.server.fastmcp.tools import ToolManager
46-
from mcp.server.fastmcp.utilities.logging import configure_logging, get_logger
47-
from mcp.server.fastmcp.utilities.types import Image
4848

4949
logger = get_logger(__name__)
5050

@@ -226,8 +226,9 @@ def add_tool(
226226
def tool(self, name: str | None = None, description: str | None = None) -> Callable:
227227
"""Decorator to register a tool.
228228
229-
Tools can optionally request a Context object by adding a parameter with the Context type annotation.
230-
The context provides access to MCP capabilities like logging, progress reporting, and resource access.
229+
Tools can optionally request a Context object by adding a parameter with the
230+
Context type annotation. The context provides access to MCP capabilities like
231+
logging, progress reporting, and resource access.
231232
232233
Args:
233234
name: Optional name for the tool (defaults to function name)

src/mcp/server/fastmcp/tools/base.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import mcp.server.fastmcp
2-
from mcp.server.fastmcp.exceptions import ToolError
3-
from mcp.server.fastmcp.utilities.func_metadata import func_metadata, FuncMetadata
4-
from pydantic import BaseModel, Field
5-
6-
71
import inspect
82
from typing import TYPE_CHECKING, Any, Callable
93

4+
from pydantic import BaseModel, Field
5+
6+
import mcp.server.fastmcp
7+
from mcp.server.fastmcp.exceptions import ToolError
8+
from mcp.server.fastmcp.utilities.func_metadata import FuncMetadata, func_metadata
9+
1010
if TYPE_CHECKING:
1111
from mcp.server.fastmcp.server import Context
1212

@@ -19,7 +19,8 @@ class Tool(BaseModel):
1919
description: str = Field(description="Description of what the tool does")
2020
parameters: dict = Field(description="JSON schema for tool parameters")
2121
fn_metadata: FuncMetadata = Field(
22-
description="Metadata about the function including a pydantic model for tool arguments"
22+
description="Metadata about the function including a pydantic model for tool"
23+
" arguments"
2324
)
2425
is_async: bool = Field(description="Whether the tool is async")
2526
context_kwarg: str | None = Field(

src/mcp/server/fastmcp/tools/tool_manager.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
from mcp.server.fastmcp.exceptions import ToolError
2-
from mcp.server.fastmcp.tools.base import Tool
3-
4-
from typing import Any, Callable, TYPE_CHECKING
51
from collections.abc import Callable
2+
from typing import TYPE_CHECKING, Any
63

4+
from mcp.server.fastmcp.exceptions import ToolError
5+
from mcp.server.fastmcp.tools.base import Tool
76
from mcp.server.fastmcp.utilities.logging import get_logger
87

98
if TYPE_CHECKING:

src/mcp/server/fastmcp/utilities/func_metadata.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
import inspect
2-
from collections.abc import Callable, Sequence, Awaitable
2+
import json
3+
from collections.abc import Awaitable, Callable, Sequence
34
from typing import (
45
Annotated,
56
Any,
67
ForwardRef,
78
)
8-
from pydantic import Field
9-
from mcp.server.fastmcp.exceptions import InvalidSignature
9+
10+
from pydantic import BaseModel, ConfigDict, Field, WithJsonSchema, create_model
1011
from pydantic._internal._typing_extra import eval_type_backport
11-
import json
12-
from pydantic import BaseModel
1312
from pydantic.fields import FieldInfo
14-
from pydantic import ConfigDict, create_model
15-
from pydantic import WithJsonSchema
1613
from pydantic_core import PydanticUndefined
17-
from mcp.server.fastmcp.utilities.logging import get_logger
1814

15+
from mcp.server.fastmcp.exceptions import InvalidSignature
16+
from mcp.server.fastmcp.utilities.logging import get_logger
1917

2018
logger = get_logger(__name__)
2119

@@ -105,7 +103,8 @@ def pre_parse_json(self, data: dict[str, Any]) -> dict[str, Any]:
105103

106104

107105
def func_metadata(func: Callable, skip_names: Sequence[str] = ()) -> FuncMetadata:
108-
"""Given a function, return metadata including a pydantic model representing its signature.
106+
"""Given a function, return metadata including a pydantic model representing its
107+
signature.
109108
110109
The use case for this is
111110
```
@@ -114,7 +113,8 @@ def func_metadata(func: Callable, skip_names: Sequence[str] = ()) -> FuncMetadat
114113
return func(**validated_args.model_dump_one_level())
115114
```
116115
117-
**critically** it also provides pre-parse helper to attempt to parse things from JSON.
116+
**critically** it also provides pre-parse helper to attempt to parse things from
117+
JSON.
118118
119119
Args:
120120
func: The function to convert to a pydantic model
@@ -130,7 +130,7 @@ def func_metadata(func: Callable, skip_names: Sequence[str] = ()) -> FuncMetadat
130130
for param in params.values():
131131
if param.name.startswith("_"):
132132
raise InvalidSignature(
133-
f"Parameter {param.name} of {func.__name__} may not start with an underscore"
133+
f"Parameter {param.name} of {func.__name__} cannot start with '_'"
134134
)
135135
if param.name in skip_names:
136136
continue

0 commit comments

Comments
 (0)