Skip to main content

Python client + MCP server adapter for Glean (search, chat, read documents). Provides a reusable HTTP client plus simple sync helper functions.

Project description

Glean MCP Server & Python Package

Simple, focused implementation providing:

  • Cookie-based client (glean_mcp.cookie_client.GleanClient) — uses browser session cookies
  • Token-based client (glean_mcp.token_client.TokenBasedGleanClient) — uses API tokens for server-to-server auth
  • MCP server (python -m glean_mcp.server) — auto-detects authentication method; ready for Docker

Links: Releases · Cookie Guide · Token Auth Guide

Install

pip install -U glean-mcp

Package Layout

src/
└── glean_mcp/
    ├── cookie_client.py      # Cookie-based authentication client
    ├── token_client.py       # Token-based authentication client
    ├── server.py             # MCP server with auto-detection
    └── glean_filter.py       # Response filtering utilities

Quick Start

MCP Server (local or Docker)

The MCP server automatically detects your authentication method.

# Choose ONE (token preferred)
export GLEAN_API_TOKEN="your-api-token"   # preferred
# OR
export GLEAN_COOKIES="your-browser-cookies"

# Set your Glean instance
export GLEAN_BASE_URL="https://your-company-be.glean.com"  # or set GLEAN_INSTANCE=your-company

# Run the MCP server locally
python -m glean_mcp.server

Docker (example):

docker run --pull always --rm \
  -e GLEAN_API_TOKEN="$GLEAN_API_TOKEN" \
  -e GLEAN_BASE_URL="$GLEAN_BASE_URL" \
  ghcr.io/alankyshum/glean-mcp-server:latest

Upgrade: use --pull always (Docker) or pip install -U glean-mcp (pip).

Library Usage (async)

Cookie-based:

from glean_mcp import GleanClient

client = GleanClient(base_url, cookies)
results = await client.search("onboarding docs")
await client.close()

Token-based:

from glean_mcp import TokenBasedGleanClient

client = TokenBasedGleanClient(base_url, api_token)
results = await client.search("onboarding docs")
await client.close()

Auto-detection (same logic as server):

from glean_mcp import create_glean_client

client = create_glean_client()  # Uses env vars; prefers token
results = await client.search("onboarding docs")
await client.close()

Authentication

Two supported methods:

🍪 Cookies (original)

  • Use browser cookies from your Glean session
  • Requires GLEAN_COOKIES
  • Uses /api/v1/ endpoints
  • See Cookie Guide

🔑 Token (recommended)

  • Use Glean API tokens for server-to-server authentication
  • Requires GLEAN_API_TOKEN
  • Uses /rest/api/v1/ endpoints
  • More secure for automated/production environments
  • See Token Auth Guide

🤖 Auto-detection rules

  1. If GLEAN_API_TOKEN is set → token-based auth
  2. Else if GLEAN_COOKIES is set → cookie-based auth
  3. If both are set → token preferred
  4. If neither is set → error with guidance

Environment Variables

Required for server/library:

Optional (server behavior):

  • GLEAN_DEFAULT_PAGE_SIZE (default: 14)
  • GLEAN_DEFAULT_SNIPPET_SIZE (default: 215)
  • GLEAN_TOOL_DESCRIPTION (tool description text)
  • GLEAN_AUTO_OPEN_BROWSER (default: true)

Development

git clone https://github.com/alankyshum/glean-mcp-server.git
cd glean-mcp-server
python -m venv .venv && source .venv/bin/activate
pip install -e '.[dev]'
pytest -q

Versioning & Publishing

  • Semantic versioning; breaking changes bump MAJOR
  • Tag vX.Y.Z after updating version strings; CI publishes to PyPI/GHCR if versions match

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glean_mcp-3.3.0.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glean_mcp-3.3.0-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file glean_mcp-3.3.0.tar.gz.

File metadata

  • Download URL: glean_mcp-3.3.0.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for glean_mcp-3.3.0.tar.gz
Algorithm Hash digest
SHA256 028808045fabb999b62ec04f88ba1ebf1ca0984bc7be62c41d8a61942a214038
MD5 6690d26f0c86b47b77576a79db2272fe
BLAKE2b-256 170c4f8af0d65e05b73acd21f036d8096af8125da9ad0119e0be773dea526368

See more details on using hashes here.

File details

Details for the file glean_mcp-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: glean_mcp-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for glean_mcp-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 710ca24a9bd6ce0a5072e7c0bac611bcdd157741505371dfee47722544422c46
MD5 82cae543219627ccfd11bd59b3347d33
BLAKE2b-256 3dcefd5a12e13779115487c109b0d3e082ff9587f7d777509a92952bda32d60b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page