Skip to content
Open
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
5 changes: 4 additions & 1 deletion src/mcp_proxy/proxy_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ async def create_proxy_server(remote_app: ClientSession) -> server.Server[object
capabilities = response.capabilities

logger.debug("Configuring proxied MCP server...")
app: server.Server[object] = server.Server(name=response.serverInfo.name)
app: server.Server[object] = server.Server(
name=response.serverInfo.name,
instructions=response.instructions,
)

if capabilities.prompts:
logger.debug("Capabilities: adding Prompts...")
Expand Down
14 changes: 13 additions & 1 deletion tests/test_proxy_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from mcp_proxy.proxy_server import create_proxy_server

TOOL_INPUT_SCHEMA = {"type": "object", "properties": {"input1": {"type": "string"}}}
SERVER_INSTRUCTIONS = "Use this server when you need the proxied tools."

SessionContextManager = Callable[[Server[object]], AbstractAsyncContextManager[ClientSession]]

Expand Down Expand Up @@ -62,7 +63,18 @@ def session_generator(request: pytest.FixtureRequest) -> SessionContextManager:
@pytest.fixture
def server() -> Server[object]:
"""Return a server instance."""
return Server("test-server")
return Server("test-server", instructions=SERVER_INSTRUCTIONS)


async def test_server_instructions_are_preserved(
session_generator: SessionContextManager,
server: Server[object],
) -> None:
"""Return the wrapped server's instructions during initialization."""
async with session_generator(server) as session:
result = await session.initialize()

assert result.instructions == SERVER_INSTRUCTIONS


@pytest.fixture
Expand Down