内容
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/banner-dark.png">
<source media="(prefers-color-scheme: light)" srcset="assets/banner-light.png">
<img alt="Fons — 让您的公司投资就绪的动态档案" src="assets/banner-light.png">
</picture>
<p align="center">
<b>Fons 为您的公司提供动态代理档案,让其投资就绪。</b><br>
一个档案即可作为您的数据室、尽职调查证据以及投资者及其代理发现您的途径。
</p>
<p align="center">
<a href="https://fons.vc"><img src="https://img.shields.io/badge/fons.vc-live-0a0a0a?style=flat-square" alt="fons.vc"></a>
<a href="#install"><img src="https://img.shields.io/badge/Claude_Code-plugin-0a0a0a?style=flat-square" alt="Claude Code 插件"></a>
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-streamable_http-0a0a0a?style=flat-square" alt="MCP"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/licence-Apache--2.0-0a0a0a?style=flat-square" alt="Apache-2.0"></a>
<a href="https://discord.gg/HVXjkCxgcj"><img src="https://img.shields.io/badge/Discord-join-0a0a0a?style=flat-square&logo=discord&logoColor=white" alt="Discord"></a>
<a href="https://x.com/fons_vc"><img src="https://img.shields.io/badge/X-@fons__vc-0a0a0a?style=flat-square&logo=x&logoColor=white" alt="X"></a>
</p>
---
本仓库是 **Fons 的代理界面**:Fons 技能、MCP 接线以及 `fons` 命令行界面。安装后,您的 AI 助手可以读取和更新您的 Fons 档案、公司、产品、关键指标和数据室 — 从您已经工作的任何地方,无需浏览器标签页,也无需通过聊天传递任何凭证。
Fons 平台本身(网页应用、评分引擎、数据库)**不是**开源的,也不位于此处。位于此处的是您与之交互所需的一切。
## 目录
- [代理可以执行的操作](#代理可以执行的操作)
- [安装](#安装)
- [身份验证方式](#身份验证方式)
- [命令行界面](#命令行界面)
- [无需账户即可读取](#无需账户即可读取)
- [代理无法执行的操作](#代理无法执行的操作)
- [架构](#架构)
- [贡献](#贡献)
- [关注我们](#关注我们)
- [安全](#安全)
- [许可证](#许可证)
## 代理可以执行的操作
二十种工具,均限定在**您自己的**账户中。每次调用都由 Fons 服务器决定授权,因此代理永远不会超出您已拥有的权限。
| | 工具 |
|---|---|
| **身份** | `whoami` · `get_profile` · `update_profile` |
| **公司** | `get_company` · `update_company` |
| **产品** | `get_product` · `update_product` — 发布您的公共 `/p/` 页面 |
| **证据** | `get_metrics` · `update_metric` · `delete_metric` · `list_documents` |
| **就绪状态** | `get_company_readiness` — 已捕获、未明确、缺失的内容 |
| **审计轨迹** | `get_feed` · `post_feed_note` — 仅追加、面向投资者 |
| **数据源** | `list_company_connections` · `sync_company_connection` · `connect_company_source` |
| **已验证账户** | `list_connections` · `connect_account` · `disconnect_account` |
技能使这些工具变得有用。它教会代理领域词汇、验证器、哪些编辑是永久的、哪些会使验证徽章失效,以及 — 当某些操作只能在浏览器中完成时 — 打开正确控件的确切 URL 而不是指向主页。
```
您 › 在 Fons 上让我的公司投资就绪
→ 读取您的就绪检查清单,与您一起草拟差距,记录缺失的指标,
告诉您还需要哪些证据,并为您提供一个连接 Stripe 的链接,
以便您的收入数据具有可验证的出处,而不是仅凭您的说法。
```
## 安装
您需要一个 Fons 账户 — 在 [fons.vc/app](https://fons.vc/app) 免费注册。个人档案免费,公司档案为 Fons Pro(每月 49 英镑/公司)。
### Claude Code — 一步到位
```bash
/plugin marketplace add fons-vc/fons
/plugin install fons@fons
```
这会安装技能 **和** 连接 MCP 服务器。第一次工具调用会打开浏览器同意屏幕;批准后,您就连接成功了。
### 其他代理
一个网址,随处可用:
```
https://fons.vc/mcp
```
这是一个具有 **OAuth 2.1、PKCE 和动态客户端注册**的远程 **Streamable HTTP** MCP 服务器,因此在大多数客户端中,您只需粘贴该网址,浏览器就会完成其余操作 — 无需配置密钥、令牌或回调网址。
<details open>
<summary><b>Claude</b> — claude.ai, Claude Desktop, Claude Code</summary>
- **claude.ai / Desktop:** 设置 → 连接器 → **添加自定义连接器** → 粘贴网址。
(自定义连接器需要付费计划。)
- **Claude Code,无需插件:** `claude mcp add --transport http fons https://fons.vc/mcp`
</details>
<details>
<summary><b>ChatGPT</b> — 开发者模式</summary>
付费计划(Plus、Pro、Business、Enterprise、Edu),**在网页上**。在免费计划上不可用。在
Business/Enterprise 上,您的 workspace 管理员必须先启用开发者模式。
1. **设置 → 安全和登录 → 开发者模式** — 打开它。
2. 进入 **设置 → 插件** (或 `chatgpt.com/plugins`)→ **+**。
3. 命名为 `Fons`,并设置 **MCP 服务器网址** 为 `https://fons.vc/mcp`。**创建**。
4. 在聊天中:**+ → 开发者模式 → Fons**。您可以在每个对话中启用它。
ChatGPT 要求您在第一次写入时确认 — 这是它的行为,而不是我们的,我们认为这是正确的做法。(OpenAI 经常更改这些菜单标签;如果您的标签不同,请寻找
"开发者模式"。)
</details>
<details>
<summary><b>OpenAI Codex</b></summary>
添加到 `~/.codex/config.toml`:
```toml
[mcp_servers.fons]
url = "https://fons.vc/mcp"
auth = "oauth"
```
然后 `codex mcp login fons`。
</details>
<details>
<summary><b>Cursor</b></summary>
[](https://cursor.com/en/install-mcp?name=fons&config=eyJ1cmwiOiJodHRwczovL2ZvbnMudmMvbWNwIn0%3D)
或手动,在 `~/.cursor/mcp.json` 中:
```json
{ "mcpServers": { "fons": { "url": "https://fons.vc/mcp" } } }
```
</details>
<details>
<summary><b>VS Code</b> — GitHub Copilot 代理模式</summary>
命令面板 → **MCP:添加服务器**,或编写 `.vscode/mcp.json`(注意键是 `servers`):
```json
{ "servers": { "fons": { "type": "http", "url": "https://fons.vc/mcp" } } }
```
适用于每个 Copilot 计划,包括免费计划。Copilot Business/Enterprise 成员需要他们的组织允许 MCP 服务器。
</details>
<details>
<summary><b>Gemini CLI</b></summary>
```bash
gemini mcp add --transport http fons https://fons.vc/mcp -s user
```
然后在 CLI 中 `/mcp auth fons`。它需要一个本地浏览器来进行同意步骤,因此它
无法在纯 SSH 会话中完成。
**Gemini 应用(gemini.google.com)无法执行此操作** — 它的连接器是一个固定的 Google 管理列表,无法添加您自己的。使用 CLI,或只需 [读取 `.md`](#readable-without-an-account)。
</details>
<details>
<summary><b>Grok</b></summary>
**grok.com/connectors → 新连接器 → 自定义** → 粘贴 `https://fons.vc/mcp` → 完成它提示的登录。在 Grok Business/Enterprise 上,团队管理员首先添加连接器。
</details>
<details>
<summary><b>Zed</b></summary>
设置 → AI → MCP 服务器 → **添加远程服务器**,或在 `settings.json` 中:
```json
{ "context_servers": { "fons": { "url": "https://fons.vc/mcp" } } }
```
去掉头部,Zed 为您运行 OAuth 流。
</details>
<details>
<summary><b>Windsurf</b> (现为 Devin Desktop)</summary>
`~/.codeium/windsurf/mcp_config.json` — 此处的远程密钥是 `serverUrl`,而不是 `url`:
```json
{ "mcpServers": { "fons": { "serverUrl": "https://fons.vc/mcp" } } }
```
</details>
<details>
<summary><b>Llama, Mistral, DeepSeek, Qwen — 或您自己运行的任何模型</b></summary>
这些是 **模型,而不是代理主机** — 它们没有自己的连接器设置。在 MCP 客户端中运行它们,并将该客户端指向 Fons。两个正确处理浏览器登录的客户端:
- **LibreChat** — 每用户 OAuth,用户可以从 UI 中添加服务器。
在 `librechat.yaml` 中:`type: streamable-http`, `url: https://fons.vc/mcp`.
- **Open WebUI** (v0.6.31+)— 管理员设置 → 外部工具 → **+** → MCP(Streamable HTTP)→
URL → 认证:**OAuth 2.1(DCR)**。管理员专用,您必须为其启用每个聊天
以触发登录。
**Ollama** 运行模型,而不是工具 — 它没有 MCP 客户端,因此您不能直接将其指向 Fons。
在 LibreChat 或 Open WebUI 后面使用它作为模型。同样,**OpenRouter**:它是
一个推理路由器,而不是代理主机。两者都不是 Fons 的空白;这只是它们不执行的操作。
</details>
<details>
<summary><b>尚未正常工作 — 我们宁愿说明</b></summary>
| | 为什么 |
|---|---|
| **Perplexity** | 它 *有* 自定义远程连接器(Pro/Max),但其 OAuth 注册目前坚持需要一个 `client_secret`。Fons 将客户端注册为 **公共** 客户端 — 无密钥,而是 PKCE — 这是适用于无法保存密钥的应用的正确且更安全的设计。Perplexity 今天拒绝这一点 ([打开的错误](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172))。我们已经测试过了;它失败了。我们将在它正常工作时列出它。
| **Microsoft 365 Copilot** | 自定义 MCP 连接器由管理员配置,需要预先注册的客户端密钥,并被记录为 **只读** 工具。**Copilot Studio** 支持我们的登录(工具 → 新工具 → MCP → OAuth 2.0 → 动态发现),如果您在那里构建代理。**消费者** Copilot 应用程序根本没有自定义连接器。
| **任何模型,无需设置** | 所有这些仍然可以 *读取* Fons 档案 — 请参见下文。
</details>
技能是将这些工具变为良好行为的关键。在 Claude Code 之外,将 [`plugins/fons/skills/fons`](plugins/fons/skills/fons) 复制到代理的技能目录中
(`~/.claude/skills/fons` for Claude Code),或只需将 `SKILL.md` 粘贴到对话中 — 它是
纯 Markdown,在任何地方都作为上下文起作用。
## 身份验证方式
**聊天中永远不会传递凭证。** 不是 API 密钥,不是令牌,不是密码。
这是重点,所以值得准确说明:
1. 您的代理调用 Fons 工具。服务器回复 `401`,带有 OAuth 挑战。
2. 您的代理在 **您登录的 Fons 会话中打开浏览器同意屏幕** — 您
以您自己的身份批准,就在代理无法访问的地方。
3. 代理接收限定范围的令牌并 **以您的身份** 执行操作。每次调用都在服务器端授权
依照与网站相同的规则。行级安全是边界,而不是客户端。
相同的模式适用于需要所有权证明的任何操作。验证 LinkedIn 账户
或连接 Stripe 返回一个 **桥接 URL**,您在自己的浏览器中打开 — 代理为您提供
入口;它永远不会持有密钥。如果您无论如何都粘贴了一个密钥,技能会被编写
拒绝它并告诉您旋转它。
## 命令行界面
```bash
npm install -g fons-cli # 或:curl -fsSL https://fons.vc/install.sh | sh (Node 18+)
fons login # OAuth,相同的浏览器同意,无需复制令牌
fons profile get
fons profile set --headline "创始人,Acme — B2B 基础设施"
fons company # 您的公司 + 数据室
fons readiness # 证据检查清单
fons product set --tagline "…"
fons metrics
fons connectors
```
令牌以 `0600` 模式存储在 `~/.config/fons` 中。相同的身份验证,相同的服务器端授权,
相同的拒绝。参见 [`cli/`](cli)。
## 无需账户即可读取
每个公共 Fons 档案都附带一个 **代理可读的 Markdown 副本**,位于同一地址 — 带有
YAML 前置元数据和 JSON-LD,因此模型获取结构化事实而不是抓取的页面。无需
身份验证,无需 SDK,无需 API 密钥。现在试试:
```bash
curl https://fons.vc/c/fons-vc.md # 一个公司(这是我们的)
curl https://fons.vc/p/<slug>.md # 一个产品
curl https://fons.vc/<handle>.md # 一个创始人
```
这是 Fons 的发现部分,它适用于 **每个** 模型 — 无需连接器,无需设置。
将 URL 粘贴到 ChatGPT、Gemini、Grok、Perplexity、Copilot 或本地 Llama 中,并询问
有关公司的问题;任何可以读取网页的代理都可以读取 Fons 档案。这也是为什么
档案值得保持准确:投资者的代理在进行背景阅读时会找到 `.md`,而不是您的推销
文案。
此仓库中的 MCP 工具适用于 **您自己的** 数据。.md 副本是任何代理读取
**其他人** 的方式。
## 代理无法执行的操作
诚实的界面比全能的界面更有用。代理 **无法**:
- **声明它没有赚取的验证。** 验证的连接、信任徽章和 `connected`
指标出处仅由实时连接器或验证的浏览器会话写入。代理可以
在您的数据室中输入一个数字;它不能使其 **验证**。这种区别是产品。
- **查看或发明分数。** Fons 以状态和频段报告就绪情况 — 永远不是数字。内部
评分逻辑不会暴露给任何代理。
- **读取您的文档。** `list_documents` 返回名称和日期。文件内容从不流经
第三方 AI 会话。
- **伪造您的历史记录。** 公司动态是仅追加的,验证事件由服务器写入,
因此审计轨迹无法从聊天窗口生成。
- **超出您的权限。** 仅限查看的队友获得诚实的 `403`,而不是变通方法。
## 架构
```
您的代理 此仓库 fons.vc
┌───────────────┐ ┌────────────────────┐ ┌──────────────────┐
│ Claude Code │ 技能 ───▶ │ SKILL.md │ │ /mcp │
│ claude.ai │ │ 参考资料/ │ │ OAuth 2.1 + PKCE│
│ Cursor, … │ 工具 ───▶ │ .mcp.json ─────────┼───────▶│ ↓ │
└───────────────┘ │ cli/ │ │ RLS 授权 │
└────────────────────┘ │ 每个调用 │
▲ └────────┬─────────┘
│ │
└────────── 浏览器同意(您,已登录) ◀────────────────┘
```
技能是指令;MCP 服务器是门;**数据库是边界**。此仓库的分支仍然作为您
通过同意,以您的权限进行身份验证 — 这就是我们可以发布它的原因。
## 贡献
问题和拉取请求是欢迎的,特别是关于技能的指导:如果它给您的代理
提供了错误的指令,这是一个值得报告的错误。参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
注意,`SKILL.md`、`references/` 和 `cli/` 是从 Fons monorepo 生成的 — 我们接受
补丁并将它们提交到上游。
## 关注我们
- **Discord** — [discord.gg/HVXjkCxgcj](https://discord.gg/HVXjkCxgcj)。我们讨论
代理应该被信任执行哪些操作,以及不应该执行哪些操作。带上记录代理出错的对话记录;
这是有用的对话。
- **X** — [@fons_vc](https://x.com/fons_vc)。
- **Web** — [fons.vc](https://fons.vc)。每个公共档案都有一个 `.md` 副本,包括
[我们的](https://fons.vc/c/fons-vc.md)。
## 安全
发现漏洞?**不要公开提出问题。** 参见 [SECURITY.md](SECURITY.md) —
报告给 [admin@fons.vc](mailto:admin@fons.vc)。
## 许可证
[Apache-2.0](LICENSE)。Fons、Fons 徽标和 fons.vc 是 Fons 的商标 —
许可证
不授予任何权利 (§6),因此分叉不得以 Fons 的名义出现。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器