diff --git a/modelcontextprotocol/.env.template b/modelcontextprotocol/.env.template index e446d5d..4475c26 100644 --- a/modelcontextprotocol/.env.template +++ b/modelcontextprotocol/.env.template @@ -4,4 +4,4 @@ ATLAN_AGENT_ID=your_agent_id MCP_TRANSPORT="stdio" # "stdio" , "sse" or "streamable-http" MCP_HOST=0.0.0.0 MCP_PORT=8000 -MCP_PATH="/" +MCP_PATH="/mcp/" diff --git a/modelcontextprotocol/Dockerfile b/modelcontextprotocol/Dockerfile index 6d5e70b..ff261c4 100644 --- a/modelcontextprotocol/Dockerfile +++ b/modelcontextprotocol/Dockerfile @@ -30,7 +30,7 @@ ENV PATH="/appuser/.venv/bin:$PATH" ENV MCP_TRANSPORT="stdio" ENV MCP_HOST="0.0.0.0" ENV MCP_PORT="8000" -ENV MCP_PATH="/" +ENV MCP_PATH="/mcp/" USER appuser diff --git a/modelcontextprotocol/docs/DEPLOYMENT.md b/modelcontextprotocol/docs/DEPLOYMENT.md index 4969b8e..4978bb9 100644 --- a/modelcontextprotocol/docs/DEPLOYMENT.md +++ b/modelcontextprotocol/docs/DEPLOYMENT.md @@ -61,7 +61,7 @@ python server.py --transport streamable-http --host 0.0.0.0 --port 8000 - `MCP_TRANSPORT`: Transport mode (stdio/sse/streamable-http) - `MCP_HOST`: Host address for network transports (default: 0.0.0.0) - `MCP_PORT`: Port number for network transports (default: 8000) -- `MCP_PATH`: Path for streamable-http transport (default: /) +- `MCP_PATH`: Path for streamable-http transport (default: /mcp/) ### Optional - `ATLAN_AGENT_ID`: Agent identifier diff --git a/modelcontextprotocol/docs/LOCAL_BUILD.md b/modelcontextprotocol/docs/LOCAL_BUILD.md index 3056435..a3ac821 100644 --- a/modelcontextprotocol/docs/LOCAL_BUILD.md +++ b/modelcontextprotocol/docs/LOCAL_BUILD.md @@ -45,7 +45,11 @@ uv run .venv/bin/atlan-mcp-server ```bash uv run mcp dev server.py ``` -7. Integrate local MCP changes with Claude Desktop(For E2E testing): + +> [!NOTE] +> When running the server locally with Python, it will be available at `http://localhost:8000/mcp/` by default. You can customize the host, port, and path using the `--host`, `--port`, and `--path` arguments respectively. + +7. Integrate local MCP changes with Claude Desktop (For E2E testing): When claude is integrated with Atlan MCP, it runs its own MCP server Update config in claude desktop config as below to use your local code changes for testing end to end: ```bash diff --git a/modelcontextprotocol/server.py b/modelcontextprotocol/server.py index a6789bd..4ac30f2 100644 --- a/modelcontextprotocol/server.py +++ b/modelcontextprotocol/server.py @@ -23,6 +23,8 @@ parse_list_parameter, ) from middleware import ToolRestrictionMiddleware +from starlette.requests import Request +from starlette.responses import PlainTextResponse from settings import get_settings @@ -42,6 +44,11 @@ mcp.add_middleware(tool_restriction) +@mcp.custom_route("/health", methods=["GET"]) +async def health_check(request: Request) -> PlainTextResponse: + return PlainTextResponse("OK") + + @mcp.tool() def search_assets_tool( conditions=None, diff --git a/modelcontextprotocol/settings.py b/modelcontextprotocol/settings.py index 23c2226..ab92510 100644 --- a/modelcontextprotocol/settings.py +++ b/modelcontextprotocol/settings.py @@ -16,7 +16,7 @@ class Settings(BaseSettings): MCP_TRANSPORT: str = "stdio" MCP_HOST: str = "0.0.0.0" MCP_PORT: int = 8000 - MCP_PATH: str = "/" + MCP_PATH: str = "/mcp/" @property def headers(self) -> dict: