mcpField
F
fonzip

fonzip

本地服务
github.com/ubaranzorlu商业与营销09 周前更新

关于 fonzip

fonzip 是开源 MCP 服务,供协会和基金会通过 AI Agent 访问 Fonzip API v2 数据。其工具按主题分组,涵盖捐赠、成员、会费、活动和筹款,定义由 OpenAPI 规范生成。

主要功能

  1. 01将 113 个 API 操作分组为 13 个工具
  2. 02访问捐赠和捐赠者记录
  3. 03管理会费和活动数据
  4. 04使用 OAuth2 客户端凭据并缓存令牌
  5. 05选择完整或紧凑的工具架构
  6. 06重试限流和服务器错误

适用场景

  1. 01按日期范围查询捐赠情况
  2. 02查看成员和会费记录
  3. 03获取活动及票务销售数据
  4. 04让 AI Agent 访问 Fonzip 机构数据

MCP 相关

该 MCP 服务通过 13 个按主题分类的工具,向 MCP 客户端提供 Fonzip API v2 操作。它负责 OAuth2 身份验证和令牌缓存;API 同时包含读写操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ubaranzorlu-fonzip": {
"command": "npx",
"args": [
"-y",
"@ubaranzorlu/fonzip-mcp"
],
"env": {
"FONZIP_CLIENT_ID": "<FONZIP_CLIENT_ID>",
"FONZIP_CLIENT_SECRET": "<FONZIP_CLIENT_SECRET>",
"FONZIP_SCHEMA_MODE": "<FONZIP_SCHEMA_MODE>",
"FONZIP_BASE_URL": "<FONZIP_BASE_URL>"
}
}
}
}
启动命令npx -y @ubaranzorlu/fonzip-mcp
需要配置的环境变量
FONZIP_CLIENT_ID密钥Fonzip API client id. Fonzip > Ayarlar > Gelismis > Fonzip API menusunden olusturulur.
FONZIP_CLIENT_SECRET密钥Fonzip API client secret.
FONZIP_SCHEMA_MODETool semasi ayrintisi: full (varsayilan) veya compact.
FONZIP_BASE_URLFonzip API adresi.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@ubaranzorlu/fonzip-mcp0.1.2

工具

13

收录的工具列表 · 更新于 3 周前

参数类型必填说明
actionenum是Yapilacak islem. Her action'in kendi zorunlu alanlari vardir; asagidaki aciklamalarda hangi alanin hangi action'a ait oldugu koseli parantez icinde belirtilir.list_bank_accounts | list_marketing_channel_filter_values | list_marketing_channels | list_payment_systems | me
how_manyinteger否[list_bank_accounts, list_marketing_channels, list_payment_systems] 要列出的记录数
start_pageinteger否[list_bank_accounts, list_marketing_channels, list_payment_systems] 记录的起始页

详细介绍

fonzip-mcp

适用于 Fonzip API v2 的 Model Context Protocol 服务

让 AI Agent 访问协会和基金会的捐赠、会员、会费、活动和营销活动数据。

npm CI License: MIT MCP Registry


这是一个独立的开源项目,由 Fonzip Yazılım A.Ş. 之外的团队开发,不受其支持或认可。

让 Claude Code、Claude Desktop、Cursor、VS Code、Codex 和其他支持 MCP 的客户端直接访问您的 Fonzip 数据。

Sen:    Bu ay kaç düzenli bağışçı kaydolmuş, toplam ne kadar?
Ajan:   [fonzip_donations / list çağrılır]
        Ağustos'ta 34 yeni düzenli bağışçı, aylık toplam 41.250 TL.
  • 13 个工具,涵盖 Fonzip API v2 的 113 项操作
  • 工具定义由 OpenAPI spec 自动生成 — 无需手动保持同步
  • OAuth2 client_credentials,包括跨进程保存 token
  • 土耳其语错误消息;调用出错时会将预期的架构返回给模型

安装

需要 Node.js 20 或更高版本。首先在 Fonzip 中打开 设置 > 高级 > Fonzip API,然后创建 API 密钥;您将获得一个 client_id 和一个 client_secret。

重要

Fonzip 密钥以 $2b$12$... 开头。在 shell 中请使用单引号 — 如果使用双引号或不加引号,shell 会将 $2b 和 $12 部分视为变量并删除,导致收到 HTTP 403。JSON 文件不受此问题影响。

Claude Code
claude mcp add fonzip \
  -e FONZIP_CLIENT_ID='...' \
  -e FONZIP_CLIENT_SECRET='...' \
  -- npx -y @ubaranzorlu/fonzip-mcp

这只会将其添加到当前项目。要在所有项目中使用,请添加 -s user;要与团队共享,请添加 -s project。

Claude Desktop

通过设置 > Developer > Edit Config 打开 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "fonzip": {
      "command": "npx",
      "args": ["-y", "@ubaranzorlu/fonzip-mcp"],
      "env": {
        "FONZIP_CLIENT_ID": "...",
        "FONZIP_CLIENT_SECRET": "..."
      }
    }
  }
}

重启 Claude Desktop。

Cursor

~/.cursor/mcp.json(全局)或项目根目录中的 .cursor/mcp.json:

{
  "mcpServers": {
    "fonzip": {
      "command": "npx",
      "args": ["-y", "@ubaranzorlu/fonzip-mcp"],
      "env": {
        "FONZIP_CLIENT_ID": "...",
        "FONZIP_CLIENT_SECRET": "..."
      }
    }
  }
}
VS Code / GitHub Copilot
code --add-mcp '{"name":"fonzip","command":"npx","args":["-y","@ubaranzorlu/fonzip-mcp"],"env":{"FONZIP_CLIENT_ID":"...","FONZIP_CLIENT_SECRET":"..."}}'

或者写入 .vscode/mcp.json 文件,并在提示时输入密钥:

{
  "inputs": [
    { "type": "promptString", "id": "fonzip-id", "description": "Fonzip client id", "password": true },
    { "type": "promptString", "id": "fonzip-secret", "description": "Fonzip client secret", "password": true }
  ],
  "servers": {
    "fonzip": {
      "command": "npx",
      "args": ["-y", "@ubaranzorlu/fonzip-mcp"],
      "env": {
        "FONZIP_CLIENT_ID": "${input:fonzip-id}",
        "FONZIP_CLIENT_SECRET": "${input:fonzip-secret}"
      }
    }
  }
}
Codex CLI

~/.codex/config.toml:

[mcp_servers.fonzip]
command = "npx"
args = ["-y", "@ubaranzorlu/fonzip-mcp"]
env = { FONZIP_CLIENT_ID = "...", FONZIP_CLIENT_SECRET = "..." }
Zed、Windsurf、Continue 等

这是一个标准的 stdio MCP 服务。请在客户端配置中添加以下内容:

komut:    npx
argüman:  -y @ubaranzorlu/fonzip-mcp
ortam:    FONZIP_CLIENT_ID, FONZIP_CLIENT_SECRET

该服务已在 MCP Registry 中注册,名称为 io.github.ubaranzorlu/fonzip;支持从 registry 安装的客户端可以直接找到它。

验证

向客户端提问:“显示我的 Fonzip 账户信息” — 服务应通过调用 fonzip_system / me 返回您的机构名称。

环境变量

变量必需默认值说明
FONZIP_CLIENT_ID是¹—Fonzip API client id
FONZIP_CLIENT_SECRET是¹—Fonzip API client secret
FONZIP_ACCESS_TOKEN否—现成的 token。提供后会跳过 client_credentials 流程
FONZIP_BASE_URL否https://fonzip.com/api/v2API 地址
FONZIP_SCHEMA_MODE否fullfull 或 compact — 架构模式
FONZIP_TOKEN_CACHE否~/.cache/fonzip-mcp/tokens.jsonToken 缓存路径。使用 off 可关闭
FONZIP_TIMEOUT_MS否30000请求超时时间
FONZIP_MAX_RETRIES否3429 和 5xx 的重试次数
FONZIP_USER_AGENT否fonzip-mcp/<sürüm>请勿留空 — 原因

¹ 未提供 FONZIP_ACCESS_TOKEN 时为必需。

工具

Fonzip API v2 有 115 个操作。如果每个操作都是一个独立工具,客户端的工具列表就会变得臃肿;因此,我们按主题将操作分组到 13 个工具中。每个工具都需要一个 action 参数。

工具Action范围
fonzip_system5机构信息(me)、支付系统、银行账户、营销渠道
fonzip_users18会员/捐赠者记录、时间线、标签、与个人关联的列表
fonzip_donations14捐赠、捐赠类别、微额捐赠、捐赠页面和表单
fonzip_monthly_donations5定期捐赠金额/银行卡变更和取消
fonzip_membership_dues9会费订阅和欠款
fonzip_events12活动、门票、门票销售
fonzip_fundraising19筹款活动、活动赛事、团队
fonzip_forms4表单和表单回答
fonzip_ecards9电子贺卡、类别、销售交易
fonzip_tags4标签管理
fonzip_templates5消息模板
fonzip_webhooks6Webhook 管理和测试通知
fonzip_communication_permissions3电子邮件/SMS/电话权限

/token 和 /authorize 端点不会作为工具提供;身份验证由服务器自行处理。

调用示例:

{
  "name": "fonzip_donations",
  "arguments": {
    "action": "list",
    "status": "paid",
    "start_date": "2026-01-01T00:00:00+03:00",
    "end_date": "2026-01-31T23:59:59+03:00"
  }
}
架构模式

在 full(默认)模式下,每个工具的所有参数都会以 JSON Schema 的形式发送给客户端。13 个工具的架构总计约 70 KB(约 1.9 万个 token);模型可以在单轮中构造正确的调用。

如果上下文预算有限,请使用 FONZIP_SCHEMA_MODE=compact:架构会精简为 action 和一个自由格式的 params 对象,字段名称则在工具说明中概述。总计约 22 KB(约 6 千个 token),即 full 模式的三分之一。如果发送了缺失字段,错误消息会返回该 action 的完整架构,以便模型自行修正。

两种模式都接受普通格式({"action": "get", "user_id": 1})和包装格式({"action": "get", "params": {"user_id": 1}})。

须知事项

Fonzip 同一时间只发放一个 token。 有效 token 存在时,调用 /token 会返回 HTTP 409 "Token already created"。由于 MCP 服务经常重启,token 默认会保存到 ~/.cache/fonzip-mcp/tokens.json 文件中(权限为 0600,且不写入 client id),并在重启时重复使用。如果关闭此缓存,服务器重启后可能长达一小时都无法获取 token。

必须提供 User-Agent。 Fonzip 前面的 Cloudflare 会以 HTTP 403 (error code 1010) 拒绝没有 User-Agent 请求头的请求。请勿将 FONZIP_USER_AGENT 留空。

速率限制为每分钟 240 个请求。 收到 HTTP 429 时,会遵循 Retry-After 请求头进行重试。

交易列表需要日期范围。 以下 action 必须提供 start_date 和 end_date;如果缺少,请求会在发送到 Fonzip 之前被拒绝:

fonzip_donations → list、list_micro、report · fonzip_membership_dues → list · fonzip_events → list_ticket_sales · fonzip_forms → list_answers · fonzip_ecards → list_transactions

如果未提供分页参数(start_page,默认值为 1)和页面大小(how_many,默认值为 10,最大值为 100),系统会自动添加默认值。同样,fonzip_donations / list 的 status 默认值为 paid。

写入操作已启用。 服务器提供所有 CRUD 操作;删除操作无法撤销。包含删除操作的工具会标记 MCP destructiveHint,客户端可能会要求确认。如果您只需要读取权限,请在 Fonzip 中创建具有只读权限的 API 密钥。

个人数据会发送给模型。 Fonzip 响应可能包含姓名、电子邮件、电话号码、土耳其身份证号码和 IBAN;这些数据会传输到您的 MCP 客户端和所使用的模型。请根据您的 KVKK 义务进行评估。详情请参阅 SECURITY.md。

较大的响应会被截断。 超过 100,000 个字符的响应会被截断,建议使用分页。

开发

git clone https://github.com/ubaranzorlu/fonzip-mcp.git
cd fonzip-mcp
npm install
npm test        # 97 test
npm run build

仓库中包含 .mcp.json;运行 npm run build 后,Claude Code 会通过本项目本地的 dist/ 运行服务。您必须在 shell 中设置 FONZIP_CLIENT_ID 和 FONZIP_CLIENT_SECRET。

工具定义不会手动编写——scripts/generate.ts 会根据 openapi/fonzip-v2.yaml 生成 src/generated/operations.ts。详情和版本发布步骤请参阅 CONTRIBUTING.md。

贡献

欢迎贡献。开始之前,请阅读 CONTRIBUTING.md 和 CODE_OF_CONDUCT.md。如需报告安全漏洞,请参阅 SECURITY.md。

许可证

本仓库中的代码采用 MIT 许可证 © Umut Baran Zorlu。

openapi/fonzip-v2.yaml 是 Fonzip Yazılım A.Ş. 自有的 API 文档,不受 MIT 许可证约束;它仅作为生成工具定义的参考资料存放在仓库中。同样的例外也适用于从该规范派生的 src/generated/operations.ts 和已发布的 dist/ 内容。“Fonzip”名称仅用于说明该服务连接到哪个服务。详情请参阅:NOTICE。

如有 API 相关问题,请联系:[email protected]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。