Skip to content
Merged
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
17 changes: 17 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Glama-friendly MCP server image.
# Builds the standalone `queryshield-mcp` stdio MCP server (the same one
# that's published to PyPI). Glama's introspection check launches the
# container, sends an MCP `initialize` over stdio, and verifies tool
# discovery works — no QUERYSHIELD_API_KEY is needed for that handshake.
FROM python:3.12-slim AS runtime

ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1

# Install only the dependencies the MCP client needs — keep the image small.
RUN pip install --no-cache-dir queryshield-mcp==1.0.1

# Stdio MCP servers expect the process to read from stdin / write to stdout.
# Glama runs the container with `-i` so this just works.
ENTRYPOINT ["queryshield-mcp"]
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ Then drop this into your Claude Desktop / Cursor / agent config:

Source for the standalone PyPI package lives in `packages/queryshield-mcp/`.

For MCP directory evaluators such as Glama, the repository root also includes a slim `Dockerfile` that launches the published `queryshield-mcp` stdio server for tool introspection. The container does not need `QUERYSHIELD_API_KEY` for MCP initialization/tool discovery; the key is only required when a discovered tool is actually invoked against a QueryShield API tenant.

## MCP integration (legacy)

Drop this into any MCP-aware client (Claude Desktop, Cursor, custom agents):
Expand Down
Loading