MCP¶
pycodeloop.core.mcp.MCPServer
dataclass
¶
Import
You can import the MCPServer class with:
from pycodeloop.core.mcp import MCPServer, load_mcp_tools
Example
class pycodeloop.core.mcp.MCPServer
server = MCPServer(
command="npx",
args=["-y", "@modelcontextprotocol/server-filesystem", "."],
)
tools = load_mcp_tools(server)
config = Config(tools=DEFAULT_TOOLS + tools)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
command
|
str
|
Executable that speaks MCP over stdio. |
required |
args
|
Optional[List[str]]
|
Arguments passed to the command. |
list()
|
env
|
Optional[Dict[str, str]]
|
Extra environment variables. |
None
|
Source code in pycodeloop/core/mcp.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | |
pycodeloop.core.mcp.MCPClient
¶
One MCP server subprocess on a dedicated background event loop —
bridges its async session into synchronous Tool.run() calls.
Source code in pycodeloop/core/mcp.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | |
server = server
instance-attribute
¶
__init__(server)
¶
Source code in pycodeloop/core/mcp.py
52 53 54 55 56 57 58 59 60 | |
call_tool(name, arguments)
¶
Source code in pycodeloop/core/mcp.py
101 102 | |
close()
¶
Source code in pycodeloop/core/mcp.py
109 110 111 112 113 114 | |
list_tools()
¶
Source code in pycodeloop/core/mcp.py
83 84 | |
pycodeloop.core.mcp.MCPTool
¶
Bases: Tool
Adapts one remote MCP tool into the pycodeloop Tool ABC.
Source code in pycodeloop/core/mcp.py
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | |
client = client
instance-attribute
¶
dangerous = True
class-attribute
instance-attribute
¶
description = schema['description']
instance-attribute
¶
name = schema['name']
instance-attribute
¶
parameters = schema['input_schema']
instance-attribute
¶
__init__(client, schema)
¶
Source code in pycodeloop/core/mcp.py
122 123 124 125 126 | |
preview(**kwargs)
¶
Source code in pycodeloop/core/mcp.py
128 129 130 | |
run(**kwargs)
¶
Source code in pycodeloop/core/mcp.py
132 133 134 135 136 137 138 139 140 141 | |
pycodeloop.core.mcp.load_mcp_tools(server)
¶
Connect to an MCP server, return its tools as pycodeloop Tools.
The client's subprocess/thread are registered for cleanup at
interpreter exit — nothing else in the app ever called close(),
which otherwise leaked a live MCP server subprocess per connection.
Source code in pycodeloop/core/mcp.py
144 145 146 147 148 149 150 151 152 153 | |