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
- If
GLEAN_API_TOKENis set → token-based auth - Else if
GLEAN_COOKIESis set → cookie-based auth - If both are set → token preferred
- If neither is set → error with guidance
Environment Variables
Required for server/library:
GLEAN_BASE_URL(e.g. https://your-company-be.glean.com) orGLEAN_INSTANCE- One of:
GLEAN_API_TOKEN(preferred) orGLEAN_COOKIES
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.Zafter 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glean_mcp-3.2.0.tar.gz.
File metadata
- Download URL: glean_mcp-3.2.0.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3307c462c3b3a08d2f00482d94e6be489e9cc8cfd6913dfc373e4c305c16613b
|
|
| MD5 |
6d5d6c08c18f8b56a4c5c5f138b6fabf
|
|
| BLAKE2b-256 |
298f19f6baa4831216ca6d377b3d5dd976431b5d113b2383766effc39e178d7a
|
File details
Details for the file glean_mcp-3.2.0-py3-none-any.whl.
File metadata
- Download URL: glean_mcp-3.2.0-py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75c1e927ebce02fdebab6ec5a7be03e49b962170c3d8cdf9e7691af36d757f71
|
|
| MD5 |
11e19fb27be5730d909e383369845367
|
|
| BLAKE2b-256 |
17a8c7432e96d4780ec195551dbcdd48c80a053df8bf34003f1c9048cc37afa0
|