feat(mcp): add mcp_paths.toml for multi-project access

- Add mcp_paths.toml with extra_dirs for C:/projects/gencpp
- Update mcp_server.py to read allowed_paths from mcp_paths.toml
This commit is contained in:
2026-05-10 16:03:17 -04:00
parent 581da1cc56
commit f58599a774
2 changed files with 15 additions and 2 deletions
+4
View File
@@ -0,0 +1,4 @@
[allowed_paths]
extra_dirs = [
"C:/projects/gencpp",
]
+11 -2
View File
@@ -79,9 +79,18 @@ async def call_tool(name: str, arguments: dict) -> list[TextContent]:
return [TextContent(type="text", text=f"ERROR: {e}")] return [TextContent(type="text", text=f"ERROR: {e}")]
async def main() -> None: async def main() -> None:
# Configure mcp_client with the project root so py_* tools are not ACCESS DENIED
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
mcp_client.configure([], extra_base_dirs=[project_root])
extra_dirs = [project_root]
mcp_paths_toml = os.path.join(project_root, "mcp_paths.toml")
if os.path.exists(mcp_paths_toml):
import tomllib
with open(mcp_paths_toml, "rb") as f:
config = tomllib.load(f)
allowed = config.get("allowed_paths", {}).get("extra_dirs", [])
extra_dirs.extend(allowed)
mcp_client.configure([], extra_base_dirs=extra_dirs)
async with stdio_server() as (read_stream, write_stream): async with stdio_server() as (read_stream, write_stream):
await server.run( await server.run(
read_stream, read_stream,