io.github.bywaleed/onyx-mcp
Onyx MCP
MCP Registry name: io.github.ByWaleed/onyx-mcp
A comprehensive, secure Model Context Protocol server for Onyx, formerly Danswer.
This project exposes Onyx search, chat, agents, projects, documents, connectors, ingestion, and deployment-specific APIs to MCP clients. It is an independent community project and is not an official Onyx package.
Why This Server
Uses the current
/chat/send-chat-messagecontract.Defaults to Onyx's built-in assistant, persona
0.Supports scoped Personal Access Tokens and legacy API keys.
Starts read-only.
Separately gates writes, administration, destructive actions, and raw API access.
Applies request timeouts and response-size limits.
Never logs authorization headers or tokens.
Includes an advanced raw API tool for deployment-specific endpoints.
Install
npx -y onyx-mcp@0.2.1The pinned command is recommended for reproducible execution. Use npx -y onyx-mcp@latest only if you intentionally want automatic upgrades.
Versioned tarballs are attached to GitHub Releases. The previous scoped package, @bywaleed/onyx-mcp, is deprecated in favor of onyx-mcp.
Configuration
Required:
Variable | Description |
| Onyx API base URL, for example |
| Onyx PAT or API key |
Optional:
Variable | Default | Description |
|
| Default agent used for new chats |
|
| Registers tools that create or modify data |
|
| Registers administrative tools |
|
| Registers destructive tools; write must also be enabled |
|
| Registers the advanced raw API tool; admin access is also required |
|
| Registers web search and URL-fetching tools |
| empty | Comma-separated hostnames allowed for HTTPS URL fetching |
|
| Request timeout |
|
| Maximum accepted response body |
|
| Maximum concurrent requests to Onyx |
|
| Maximum requests waiting for a concurrency slot |
Onyx still enforces the permissions attached to the supplied token. Enabling a profile cannot grant additional Onyx privileges.
OpenCode
{
"mcp": {
"onyx": {
"type": "local",
"command": ["npx", "-y", "onyx-mcp@0.2.1"],
"environment": {
"ONYX_API_URL": "https://onyx.example.com/api",
"ONYX_API_TOKEN": "{env:ONYX_API_TOKEN}"
},
"enabled": true
}
}
}Claude Desktop
{
"mcpServers": {
"onyx": {
"command": "npx",
"args": ["-y", "onyx-mcp@0.2.1"],
"env": {
"ONYX_API_URL": "https://onyx.example.com/api",
"ONYX_API_TOKEN": "your-token"
}
}
}
}Tool Profiles
The read-only profile includes health, identity, permissions, search, chat history, agents, projects, files, tools, document sets, and connector status.
The write profile adds chat creation, chat messages, feedback, and project updates.
The admin profile adds connector, credential, user, agent, and direct-ingestion administration.
The destructive profile adds individually confirmed deletion tools. Bulk deletion is intentionally not exposed as a first-class tool.
The raw API profile adds onyx_api_request. It covers APIs specific to an Onyx edition or version. Every raw request requires the admin profile. Every non-GET request also requires write and destructive access plus confirmation because arbitrary endpoint semantics cannot be inferred safely.
Tools
The default profile provides health, version, identity, permission, indexed search, agent, chat-history, project, file, document-set, tool, source, and connector-status tools. Write mode adds chat, feedback, and project mutations. Admin mode adds connector, credential, user, agent, and ingestion tools. Web search and URL fetching require a separate web-fetch opt-in. URL fetching accepts only HTTPS destinations matching the configured hostname allowlist; Onyx must also validate redirects and resolved addresses to prevent DNS rebinding.
Run onyx_capabilities to inspect the active profile. MCP clients can also call tools/list for complete machine-readable schemas and safety annotations.
Authentication
Prefer an Onyx PAT with the smallest required scope:
read:searchfor search.read:chatfor chat history.write:chatfor chat creation and messages.
Some Onyx endpoints still use legacy role checks and need an unrestricted PAT or API key. Use a separate administrative server configuration for those operations.
Treat client configuration files as sensitive when they contain a token. Use a dedicated least-privilege token and restrict file permissions to your user account.
Development
npm ci
npm run verifyCompatibility
Component | Supported |
Node.js | 20 and 22 |
MCP SDK/protocol | TypeScript SDK 1.x, MCP through |
Onyx | Current community and enterprise APIs; tested against the repository version documented in releases |
Transport | Local stdio |
The server uses non-streaming Onyx chat responses for a stable MCP result. Onyx editions and releases expose different administrative routes. The raw API tool provides an escape hatch while first-class tools remain curated and safe. MCP SDK 2.x migration is planned as a separate breaking compatibility release.
Support And Security
Usage questions: GitHub Discussions
Bugs and feature requests: GitHub Issues
Vulnerabilities: private security advisory
Release history: CHANGELOG.md
Maintainer release process: RELEASING.md
MCP Registry metadata: server.json
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ByWaleed/onyx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server