Add Python MCP server option
This commit is contained in:
40
scripts/mcp_smoke_test.py
Normal file
40
scripts/mcp_smoke_test.py
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
from __future__ import annotations
|
||||
|
||||
import anyio
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
from mcp import ClientSession, StdioServerParameters
|
||||
from mcp.client.stdio import stdio_client
|
||||
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
server_params = StdioServerParameters(
|
||||
command=str(REPO_ROOT / ".venv-mcp" / "bin" / "python"),
|
||||
args=[str(REPO_ROOT / "mcp_server.py")],
|
||||
cwd=str(REPO_ROOT),
|
||||
env={
|
||||
**os.environ,
|
||||
"M2PACK_BINARY": os.environ.get("M2PACK_BINARY", str(REPO_ROOT / "build" / "m2pack")),
|
||||
},
|
||||
)
|
||||
|
||||
async with stdio_client(server_params) as (read_stream, write_stream):
|
||||
async with ClientSession(read_stream, write_stream) as session:
|
||||
await session.initialize()
|
||||
tools = await session.list_tools()
|
||||
binary_info = await session.call_tool("pack_binary_info", {})
|
||||
print({
|
||||
"ok": True,
|
||||
"tool_count": len(tools.tools),
|
||||
"tool_names": [tool.name for tool in tools.tools],
|
||||
"binary_info": getattr(binary_info, "structuredContent", None),
|
||||
})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
anyio.run(main)
|
||||
Reference in New Issue
Block a user