关于 FactQL
FactQL 是面向开发者的 MCP 服务,适用于围绕真实数据构建 AI 应用和内部工具。它验证答案并返回执行的查询、结果行和数据血缘;无法验证时会拒绝作答。
主要功能
- 01从已连接数据生成经验证的答案
- 02答案附带执行的 SQL
- 03返回结果行和数据血缘
- 04提供澄清或拒答结果
- 05仅运行带超时限制的 SELECT 查询
适用场景
- 01查询业务数据库并获取答案
- 02查询上传的 CSV 和 XLSX 文件
- 03获取带引用的 PDF 内容答案
- 04为 MCP 客户端接入数据支持的答案
MCP 相关
FactQL 向 MCP 客户端提供 `whoami` 和 `ask` 工具,可用于 Claude Desktop、Claude Code 和 Cursor。它既可作为托管远程服务使用,也可通过 API 密钥在本地运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.factql.ai/mcpclaude mcp add --transport http factql-factql https://api.factql.ai/mcp{"mcpServers":{"factql-factql":{"type":"http","url":"https://api.factql.ai/mcp"}}}在 Cursor 中打开{"servers":{"factql-factql":{"type":"http","url":"https://api.factql.ai/mcp"}}}在 VS Code 中打开{"mcpServers":{"factql-factql":{"type":"http","url":"https://api.factql.ai/mcp"}}}{"mcpServers":{"factql-factql":{"serverUrl":"https://api.factql.ai/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
factql-mcp
FactQL 是模型周围的运行框架。
询问有关数据的问题。FactQL 会运行查询,在你看到答案前检查结果;如果无法验证,就会拒绝回答,而不是猜测。
每个答案都附带实际运行的查询、返回的行以及背后的数据沿袭。只需一次 API 调用。支持 Postgres、MySQL、DuckDB、上传的 CSV 和 XLSX 文件,以及可提供引用答案的 PDF。
专为需要让 AI 接触真实数据的开发者打造:AI 应用、Agent 和内部工具都不能承受自信却错误的数字。
此软件包是 FactQL 的 MCP 服务:它可将这些答案带到 Claude Desktop、Claude Code、Cursor 或任何 MCP 客户端中。了解更多信息,请访问 factql.ai。
托管服务(无需安装)
FactQL 也会为你运行此服务,地址如下:
https://api.factql.ai/mcp
在 Claude(Settings → Connectors → Add custom connector;支持网页、桌面和移动端)、Claude Code(claude mcp add --transport http factql https://api.factql.ai/mcp)、Cursor、VS Code 或任何支持远程 MCP 的应用中,将其添加为远程(Streamable HTTP)MCP 服务。应用会打开 FactQL 登录页面;点击 Allow,之后应用中的问题就会以你的身份运行。你可以在 factql.ai 的 Settings → Connected apps 下断开连接。无法登录的应用可以改为通过 Authorization: Bearer fl_live_... 发送 API 密钥。
各应用的设置说明:docs.factql.ai/guides/mcp。
本 README 的其余部分介绍如何自行运行该服务。
获取密钥
在 factql.ai/signup 免费注册,连接数据并创建 API 密钥。此服务只需使用仅允许提问的密钥。
安装
uvx factql-mcp
或运行 pip install factql-mcp。
配置
| 变量 | 必填 | 默认值 |
|---|---|---|
FACTQL_API_KEY | 是 | — 你的 FactQL API 密钥(仅允许提问的密钥即可) |
FACTQL_BASE_URL | 否 | https://api.factql.ai |
FACTQL_WORKSPACE_ID | 否 | 默认工作区,适用于使用工作区的租户 |
FACTQL_END_USER_ID | 否 | mcp:<os user> |
Claude Desktop / Cursor(mcpServers)
{
"mcpServers": {
"factql": {
"command": "uvx",
"args": ["factql-mcp"],
"env": { "FACTQL_API_KEY": "fl_live_..." }
}
}
}
Claude Code
claude mcp add factql -e FACTQL_API_KEY=fl_live_... -- uvx factql-mcp
工具
whoami()— 查询此密钥可访问的租户、计划和工作区。ask(question, workspace_id?, locale?)— 返回答案、实际运行的 SQL 以及最多 50 行数据。needs_clarification结果表示问题太含糊;请询问用户并补充细节后再次调用。declined结果表示 FactQL 无法验证答案,因此拒绝回答而不是猜测;reason会说明原因。locale为en-GB或en-US。
每次 ask 调用都是无状态的:MCP 客户端会保留对话,因此后续问题应重新说明所指内容。
安全性
FactQL 只会运行 SELECT 查询,并设置语句超时;查询范围仅限管理员启用的表。密钥的权限决定它能查看哪些内容;此服务不会额外增加任何权限。
开发
uv run --with pytest pytest -q
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。