Every number in an AI answer traces back to the rows that produced it.
registry version 0.1.2
npm
npx -y @brick-byte/footnotenpm
npx -y @brick-byte/footnote@0.1.2
Pick your client — the config below is generated for this server (local stdio). Copy respects the “Pin version” switch above.
claude_desktop_config.json
{
"mcpServers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}{
"mcpServers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote@0.1.2"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Format verified against the official Claude Desktop docs ↗.
terminal
claude mcp add --env DATABASE_URL=<YOUR_DATABASE_URL> footnote -- npx -y @brick-byte/footnote
claude mcp add --env DATABASE_URL=<YOUR_DATABASE_URL> footnote -- npx -y @brick-byte/footnote@0.1.2
Format verified against the official Claude Code docs ↗.
.cursor/mcp.json
{
"mcpServers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}{
"mcpServers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote@0.1.2"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Format verified against the official Cursor docs ↗.
.vscode/mcp.json
{
"servers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}{
"servers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote@0.1.2"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Format verified against the official VS Code docs ↗.
mcp_config.json
{
"mcpServers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}{
"mcpServers": {
"footnote": {
"command": "npx",
"args": [
"-y",
"@brick-byte/footnote@0.1.2"
],
"env": {
"DATABASE_URL": "<YOUR_DATABASE_URL>"
}
}
}
}Format verified against the official Windsurf docs ↗.
Defined in the server's official registry manifest. Required secrets are shown as <YOUR_…> placeholders in the configs above.
DATABASE_URL secret — Postgres connection string. Omit to use the built-in SQLite sample database.PROVENANCE_DB — Path to the SQLite provenance log. Defaults to in-memory, which discards the trail on exit.PROVENANCE_ACTOR — Identity recorded against each provenance record. In production this comes from the request's auth.最近更新于 76 天前 · MIT license
Footnote Claim level provenance for AI over business data. Every number in an answer traces back to the rows that produced it — clickable at read time, exportable for an auditor, and tamper evident. An MCP server, a provenance store, and a demo UI showing what the combination looks like. Node 22.5+…
Summary from the project README — github.com/brick-byte/footnote
Distributed as npm, listed under Other Tools. Review our MCP security guide before granting access to real data.
Footnote Claim level provenance for AI over business data. Every number in an answer traces back to the rows that produced it — clickable at read time, exportable for an auditor, and tamper evident. An MCP server, a provenance store, and a demo UI showing what the combination looks like. Node 22.5+
Run the install command shown above, then paste the config for your client (Claude Desktop, Claude Code, Cursor, VS Code or Windsurf) into its MCP settings and restart the client.
The MCP server itself is free to install. The source is public on https://github.com/brick-byte/footnote. Any third-party service it calls may require its own API key and account.
Any MCP-compatible client can use it, including Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and custom agents.
Publish this server? Link back with a badge on your README or site — copy either snippet.
Markdown
[](https://mcpnav.net/server/footnote/)
HTML
<a href="https://mcpnav.net/server/footnote/"><img src="https://mcpnav.net/badge/footnote.svg" alt="Listed on MCPNav" height="20"></a>