mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-22 05:24:18 +02:00
Merge pull request #555 from jlowin/mcp-config-transport
Minor addition: add transport to stdio server in mcpconfig, with default
This commit is contained in:
commit
9bb6e4e95a
2 changed files with 6 additions and 5 deletions
|
|
@ -32,11 +32,12 @@ def infer_transport_type_from_url(
|
|||
return "streamable-http"
|
||||
|
||||
|
||||
class LocalMCPServer(BaseModel):
|
||||
class StdioMCPServer(BaseModel):
|
||||
command: str
|
||||
args: list[str] = Field(default_factory=list)
|
||||
env: dict[str, Any] = Field(default_factory=dict)
|
||||
cwd: str | None = None
|
||||
transport: Literal["stdio"] = "stdio"
|
||||
|
||||
def to_transport(self) -> StdioTransport:
|
||||
from fastmcp.client.transports import StdioTransport
|
||||
|
|
@ -51,8 +52,8 @@ class LocalMCPServer(BaseModel):
|
|||
|
||||
class RemoteMCPServer(BaseModel):
|
||||
url: str
|
||||
transport: Literal["streamable-http", "sse", "http"] | None = None
|
||||
headers: dict[str, str] = Field(default_factory=dict)
|
||||
transport: Literal["streamable-http", "sse", "http"] | None = None
|
||||
|
||||
def to_transport(self) -> StreamableHttpTransport | SSETransport:
|
||||
from fastmcp.client.transports import SSETransport, StreamableHttpTransport
|
||||
|
|
@ -69,7 +70,7 @@ class RemoteMCPServer(BaseModel):
|
|||
|
||||
|
||||
class MCPConfig(BaseModel):
|
||||
mcpServers: dict[str, LocalMCPServer | RemoteMCPServer]
|
||||
mcpServers: dict[str, StdioMCPServer | RemoteMCPServer]
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, config: dict[str, Any]) -> MCPConfig:
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from fastmcp.client.transports import (
|
|||
StdioTransport,
|
||||
StreamableHttpTransport,
|
||||
)
|
||||
from fastmcp.utilities.mcp_config import LocalMCPServer, MCPConfig, RemoteMCPServer
|
||||
from fastmcp.utilities.mcp_config import MCPConfig, RemoteMCPServer, StdioMCPServer
|
||||
|
||||
|
||||
def test_parse_single_stdio_config():
|
||||
|
|
@ -89,7 +89,7 @@ def test_parse_multiple_servers():
|
|||
assert isinstance(mcp_config.mcpServers["test_server"], RemoteMCPServer)
|
||||
assert isinstance(mcp_config.mcpServers["test_server"].to_transport(), SSETransport)
|
||||
|
||||
assert isinstance(mcp_config.mcpServers["test_server_2"], LocalMCPServer)
|
||||
assert isinstance(mcp_config.mcpServers["test_server_2"], StdioMCPServer)
|
||||
assert isinstance(
|
||||
mcp_config.mcpServers["test_server_2"].to_transport(), StdioTransport
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue