Quelvio

com.quelvio由 quelvio.com 发布官方发布者v1.1.0更新于 Oct 27, 2026

Your company's brain for AI agents. Cited, permission-aware knowledge across every system.

已验证Streamable HTTP可网页运行网页搜索与抓取知识与记忆

概览

AI 生成的概览

Quelvio 让助手检索企业已连接的知识(Drive、SharePoint、Confluence、Slack、Notion),返回带引用且按权限过滤的答案。

可以做什么
  • 在已连接的企业数据源中检索,返回带编号引用的综合答案及排序后的来源片段,支持 fast、standard、deep 三种模式
  • 列出已索引的分类域及其文档数、专家数与覆盖等级,用于判断是否值得发起查询
  • 按先前查询的 query_id 获取逐片段来源信息,如文档路径、生命周期状态、嵌入时间与贡献者
  • 在结果中附带令牌消耗、覆盖情况与截断标记等元数据
适用场景
适合让助手基于组织内部文档与聊天记录而非公开网络回答问题,并要求答案带引用、遵循每位员工原有的数据源权限。可先查看分类域,避免为未索引的主题付费查询。
运行要求
需要远程 Streamable HTTP 端点;无需配置 API 密钥或请求头。首次使用时通过组织托管的 Clerk 登录页在浏览器中登录,OAuth 令牌可复用至过期(约 30 天)或被撤销。不支持 Streamable HTTP 的旧客户端可用 npm 包作为本地 stdio 桥接,需 Node.js,并在本机开启 OAuth 回调监听。
安装前请注意
查询会消耗计费的 Knowledge Token:fast 为 1,500、standard(默认)为 12,500、deep 为 25,000,列分类域与来源详情不消耗,因此频繁或深度查询可能累积费用。查询绑定个人员工身份并按数据源 ACL 过滤,只能看到该账号本已可见的内容。登录经由组织的身份提供商完成,令牌可在厂商企业管理后台撤销。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Quelvio,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.quelvio%2Fmcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "quelvio": {
      "type": "http",
      "url": "https://mcp.quelvio.com/http"
    }
  }
}

README

@quelvio/mcp-server

Quelvio MCP server — search your company's connected knowledge from any AI tool that speaks the Model Context Protocol.

Endpoint: https://mcp.quelvio.com/http (Streamable HTTP, MCP spec 2025-03-26) Source: Quelvio/quelvio-mcp-server License: MIT

Tools

ToolPurposeKnowledge Tokens
query_knowledgePrimary search across the tenant's connected sources (Drive, SharePoint, Confluence, Slack, Notion). Modes: fast, standard (default), deep.1,500 kT (fast) / 12,500 kT (standard) / 25,000 kT (deep)
list_domainsDiscovery — list taxonomy domains with coverage levels. Use to decide whether the brain has relevant knowledge before issuing a billable query.0 kT
get_source_detailPer-chunk provenance for a previous query: document path, lifecycle state, embedding timestamp, contributor, last-updated. Pass a query_id from an earlier query_knowledge response.0 kT

Permission model

Every MCP query is scoped to your individual employee identity, not just your tenant. The server applies the same three-layer access model the dashboard uses:

  1. Tenant isolation — Qdrant collections are per-tenant; cross-tenant content is structurally unreachable.
  2. Role-based feature access — Owner / Admin / Member determines which tools are callable.
  3. Source permission filtering — permission_emails on every chunk, resolved at ingest time from the source system's ACLs (Google Drive shares, SharePoint groups, Confluence space restrictions). MCP queries see only what your individual account would see in those source systems.

The source-permission filter is unconditional — there is no flag, env var, or dashboard toggle that disables it. The MCP server records the per-employee identity on every query so cross-employee provenance inspection via get_source_detail is rejected with 404 (only Owner/Admin can view another member's queries).

Sign in

There is no API key to provision. The first time you use Quelvio MCP from any client, you'll be redirected to your organization's sign-in page (Clerk-hosted, the same one the dashboard uses). After signing in, your client resumes automatically. Subsequent queries reuse the OAuth token until it expires (~30 days) or you revoke it from enterprise.quelvio.com.

If your AI assistant prompts you for a "Bearer token" or "API key" header in the JSON config, you have an outdated configuration — delete the headers block and let your client manage OAuth. The migration is automatic: the next time you invoke a tool, the client opens a browser tab for sign-in.

Install

Claude Desktop (and Claude Web)

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "quelvio": {      "url": "https://mcp.quelvio.com/http"    }  }}

Restart Claude Desktop. On first use Claude opens a browser tab pointing at Clerk's hosted sign-in page; complete sign-in and Claude resumes automatically.

Cursor

Add to .cursor/mcp.json in your project root (or globally at ~/.cursor/mcp.json):

json
{  "mcpServers": {    "quelvio": {      "url": "https://mcp.quelvio.com/http"    }  }}

Cursor handles the OAuth round-trip the same way Claude does.

Claude Code

bash
claude mcp add quelvio --transport http https://mcp.quelvio.com/http

VS Code (Copilot)

Add to .vscode/mcp.json:

json
{  "servers": {    "quelvio": {      "type": "http",      "url": "https://mcp.quelvio.com/http"    }  }}

stdio bridge (older clients)

For MCP clients that don't speak Streamable HTTP yet, install the npm package:

bash
npm install -g @quelvio/mcp-server

Then point your client at the binary:

json
{  "mcpServers": {    "quelvio": {      "command": "quelvio-mcp"    }  }}

The binary opens a local OAuth listener on a random 127.0.0.1 port and proxies all subsequent JSON-RPC to https://mcp.quelvio.com/http.

OAuth flow

The MCP server is an OAuth 2.1 + PKCE (S256) protected resource. Bearer tokens are opaque, KV-backed, and AES-GCM encrypted at rest. RFC 9728 + RFC 8414 discovery is wired:

  • GET /.well-known/oauth-protected-resource — resource metadata
  • GET /.well-known/oauth-authorization-server — authorization server metadata
  • GET /oauth/authorize — 302 to Clerk hosted sign-in (with PKCE state stashed in KV)
  • GET /oauth/callback — Clerk session JWT → POST /v1/auth/sso-bridge mints a per-employee ephemeral key → 302 back to client redirect_uri
  • POST /oauth/token — auth_code or refresh_token grant
  • POST /oauth/revoke — invalidate a token

Modern MCP clients auto-bootstrap the flow when they hit a 401 with the WWW-Authenticate: Bearer ... resource_metadata=... challenge. Cursor and Claude Desktop do this transparently.

v0.8.8 foundation deletion: the legacy paste-an-API-key form path (POST /oauth/authorize with a qlv_ent_* key in the form body) is gone. Customers using paste-key MCP must complete the OAuth/Clerk round-trip on first use; the migration is automatic — the client just opens a browser tab the next time you invoke a tool.

Examples

1. query_knowledge — find an answer with citations

ask Claude: "What's our deployment process for the payments service?"
Claude calls: query_knowledge(query="deployment process payments service")
Response: synthesized answer with [n] citations + structured metadata block includingquery_id, coverage level, retrieval execution state, latency, and tokens consumed.(Default mode is `standard` — synthesis is built in. Use `mode="deep"` for complexanalytical questions, `mode="fast"` for keyword-style retrieval with no synthesis.)

2. list_domains — discover what's indexed before querying

ask Claude: "What taxonomy domains does our company have indexed?"
Claude calls: list_domains()
Response: list of every domain with document count, expert count, coverage level(expert | partial | none), top contributor by authority, and the single_expert riskflag where applicable.

3. get_source_detail — verify a citation

After a query_knowledge call returned [3] citations, ask Claude:"Show me the actual source for citation [3]."
Claude calls: get_source_detail(query_id="<uuid from prior query>")
Response: per-chunk provenance — document path, lifecycle state (live | stale |superseded | user_deleted), embedding timestamp + model, contributor name + department,authority score, taxonomy domain.

Pricing

Knowledge Token consumption per tool call (v0.9 frozen constants):

  • query_knowledge with mode=fast : 1,500 kT (retrieval-only, no synthesis)
  • query_knowledge with mode=standard : 12,500 kT (default; synthesis bundled)
  • query_knowledge with mode=deep : 25,000 kT (wider retrieval + premium synthesis)
  • list_domains : 0 kT
  • get_source_detail : 0 kT

These costs are frozen at the v0.9 Contract Lock. The dashboard's billing page (/billing) shows the live per-tenant daily Knowledge Token pool and the projected next invoice.

Self-hosting / development

bash
cd mcp-serverpnpm install
# Local devpnpm dev
# Deploy to Cloudflare Workerswrangler secret put TOKEN_ENCRYPTION_KEY    # 32 bytes hex (openssl rand -hex 32)wrangler secret put CLERK_SIGN_IN_URL       # Clerk hosted sign-in URLpnpm deploy

The Worker is stateless — every OAuth artifact (auth codes, access tokens, refresh tokens) lives in the bound KV namespace. No Durable Objects.

Protocol

  • Transport: Streamable HTTP (MCP spec 2025-03-26)
  • Endpoint: POST /http with Content-Type: application/json
  • Health check: GET / or GET /http returns server info
  • Methods: initialize, tools/list, tools/call, ping
  • Streaming: when tools/call query_knowledge carries Accept: text/event-stream AND mode is standard|deep (the two v0.9 tiers that synthesize), the server proxies the backend's SSE pipeline. fast never streams (no synthesis body to incrementally produce). The MCP response is still a single JSON body — token-by-token streaming to the MCP client lands when the spec adds native output deltas.
  • Response cap: Claude Connectors' 25,000-token-per-tool-result limit is enforced server-side. Truncation order: drop excerpts past 200 chars first, then drop lowest-rank sources (preserving ≥3), then truncate the synthesis body. Truncation is signalled via truncated: true in the structured metadata block so agents can re-issue with a smaller max_sources.

Release process

Publishes go through .github/workflows/publish.yml via npm Trusted Publishing (OIDC). No long-lived NPM_TOKEN lives in this repo or in GitHub Actions secrets.

To ship a new version:

bash
# 1. Bump version + commitnpm version patch   # or minor / majorgit push origin main
# 2. Push the matching tag — this triggers the publish workflowgit push origin v$(node -p "require('./package.json').version")

The workflow verifies the tag matches package.json, type-checks, builds, and runs npm publish --provenance --access public. SLSA provenance is attached to every release.

One-time bootstrap on npmjs.com (operator step):

  • Package: @quelvio/mcp-server → Settings → Trusted Publishers → Add
  • Repository owner: Quelvio
  • Repository name: quelvio-mcp-server
  • Workflow filename: publish.yml

Changelog

See CHANGELOG.md.

来源:README.md,提交 cae23ed

工具

3

query_knowledge

Search company knowledge

Search the company's connected knowledge across every source — Drive, SharePoint, Confluence, Slack, Notion — with cited synthesized answers, lifecycle awareness, and refusal-on-weak-context. Returns a written answer with [n] citations plus the ranked source chunks. Modes: `fast` (1,500 kT — retrieval-only, no synthesis), `standard` (12,500 kT — default; synthesized answer over the top retrieval set), `deep` (25,000 kT — wider retrieval + premium synthesis for complex questions). Pick the cheapest tier that answers the question. Responses are capped at 25,000 output tokens per Claude Connectors policy; if truncated, structured metadata carries `truncated: true` and `query_id` so the agent can call `get_source_detail` for full provenance.

输入参数modequery必填domainmax_sources

list_domains

List indexed domains

List the taxonomy domains the company has indexed — with document counts, expert counts, and coverage levels — so an agent can decide whether to query before spending a Knowledge Token. Returns one row per domain with the canonical `taxonomy_domain` slug, document/chunk counts, expert count, coverage level (expert | partial | none), the single_expert risk flag, and the top contributor by authority. Use the slug as the `domain` filter on a follow-up `query_knowledge` call. Zero Knowledge Tokens consumed.

输入参数coverage_filter

get_source_detail

Get source detail

Return per-chunk source provenance for a previous query — document path, lifecycle state, embedding timestamp, contributor, last-updated — useful for verifying a citation or surfacing trust signals to a downstream system. Pass a `query_id` returned by an earlier `query_knowledge` call. Returns 404 if the query_id is unknown OR belongs to a different tenant (indistinguishable to prevent info-leak). Zero Knowledge Tokens consumed.

输入参数query_id必填

版本历史

1
  1. v1.1.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分