使用说明
dgc fivetran
一个专门的MCP服务器(和Gemini CLI扩展),用于审计、检查和管理Fivetran帐户和Fivetran Activations(Census)反向ELT管道。
存储库: github/edgardevo/mcp-fivetran ·问题: 问题 ·许可证: 麻省理工学院
主要特点
- 审计重点:大多数工具都是只读的
GET审计和检查操作-Fivetran REST API中的每个读取端点都包含在内。破坏性和帐户变异操作被门控(见下文)或故意省略。 - 写入操作:一组门控写入工具可用于操作任务,包括创建/更新/删除连接器、目标和组、管理组成员资格、生成连接卡设置链接、触发同步/重新同步、运行设置测试、编辑架构/表/列配置以及重新加载/删除/重新同步架构项。破坏性删除需要明确的
confirm=true。所有其他Fivetran工具都是只读的。 - 支持Fivetran激活(人口普查):用于审核反向ELT同步、源和目标的全套工具。
- 安全第一:
- 递归重动作:清除敏感密钥(密码、机密、令牌、API密钥)的所有输出。Redaction使用精确的键名和后缀匹配来避免破坏合法字段,如
api_key_id或auth_type.光秃秃的key仅当字段嵌套在带有凭据的容器中时,才会对其进行编辑(config,auth,secrets,credentials),所以合法的顶级key田地被保留了下来。 - 速率限制安全:429个响应被重试
Retry-After荣幸,最多重试3次,以防止无限递归。
- 递归重动作:清除敏感密钥(密码、机密、令牌、API密钥)的所有输出。Redaction使用精确的键名和后缀匹配来避免破坏合法字段,如
- MCP提示:可重复使用的工作流提示(
fivetran_health_report,fivetran_security_audit,fivetran_sync_triage,fivetran_lineage_overview)通过MCP提示功能公开,因此任何MCP客户端(不仅仅是Gemini CLI)都可以运行审计手册。 - 数据导出:内置工具,可将数据导出为CSV/JSON进行离线分析。
- 分页:聚合/审计工具和导出工具自动遵循基于光标的分页(通过共享
fetchAllPages助手),这样他们就不会低估大额账户。单个生成的GET工具返回一个页面——useget_next_page或者使用导出工具获取更多信息。
设置
先决条件
- Node.js 20+
- npm
安装
该包暴露了一个 dgc-fivetran 二进制文件,因此MCP客户端可以直接启动它,而无需手动构建。直接从GitHub仓库运行它 npx (the prepare 脚本基于安装构建):
npx github:edgardevo/mcp-fivetran
或克隆用于本地开发:
git clone https://github.com/edgardevo/mcp-fivetran.git
cd mcp-fivetran
npm install # runs the build via the prepare hook
MCP客户端配置示例(例如克劳德桌面/Claude代码),通过以下方式传递凭据 env:
{
"mcpServers": {
"fivetran": {
"command": "npx",
"args": ["-y", "github:edgardevo/mcp-fivetran"],
"env": {
"FIVETRAN_API_KEY": "your_key",
"FIVETRAN_API_SECRET": "your_secret",
"CENSUS_API_KEY": "your_census_key"
}
}
}
}
配置
在中设置API凭据 .env 文件(gitignored):
# Standard Fivetran ELT
FIVETRAN_API_KEY=your_key
FIVETRAN_API_SECRET=your_secret
# Fivetran Activations (Census)
CENSUS_API_KEY=your_census_key
# Opt in to gated write tools (connector create/update, sync/resync, setup tests, schema/table/column config edits).
# Defaults to read-only mode when unset. Truthy values: true, 1, yes (case-insensitive).
FIVETRAN_ALLOW_WRITES=
您只需要为要使用的曲面设置关键帧——缺少关键帧会在启动时禁用相应的工具组并发出警告。
只读模式(默认)
服务器以只读模式运行,除非 FIVETRAN_ALLOW_WRITES 被设置为真实值(true, 1,或 yes不区分大小写只读时,所有写入工具(连接器创建/更新/删除、同步/重新同步、设置测试、目标CRUD和模式/表/列配置编辑)都没有注册,因此模型无法调用。(参见 DOCS.md 查看完整列表;写工具用它们的HTTP动词标记。)所有其他工具,包括 generated_tools.ts 人口普查激活工具仍然可用。
所需的API权限
| API | 在何处创建令牌 | 权限/角色 |
|---|---|---|
| Fivetran | 仪表板→ 设置→ API配置 → 生成API密钥 | 帐户范围的密钥。 帐户管理员 全面审计+编写工具的角色;只读角色适用于审核子集。看 Fivetran REST API授权. |
| 人口普查(激活) | 工作区→ 设置→ API令牌 (工作区API令牌) 或您的用户资料 (个人访问令牌) | 同步/源/目标的工作区令牌;PAT还可以列出工作区和用户。看 人口普查API授权. |
将这些凭据视为生产机密。它们仅通过TLS发送到上游API,而不会发送到LLM,并且任何响应在返回到模型之前都会通过编校层。
用法
Gemini CLI
gemini extensions link .
这 gemini-extension.json 清单包含MCP服务器以及以下列出的捆绑技能、规则、参考和斜线命令 捆绑式扩展资产.
克劳德桌面
添加 claude_desktop_config.json (macOS路径: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"fivetran": {
"command": "node",
"args": ["/absolute/path/to/mcp-fivetran/dist/index.js"],
"env": {
"FIVETRAN_API_KEY": "...",
"FIVETRAN_API_SECRET": "...",
"CENSUS_API_KEY": "..."
}
}
}
}
编辑后重新启动Claude Desktop。
克劳德代码
claude mcp add fivetran -- node /absolute/path/to/mcp-fivetran/dist/index.js
然后在shell中或 ~/.claude/settings.json 在...之下 env.
光标/继续/其他MCP客户端
任何兼容MCP的客户端都可以通过stdio启动服务器。配置客户端以运行:
command: node
args: ["/absolute/path/to/mcp-fivetran/dist/index.js"]
env: FIVETRAN_API_KEY, FIVETRAN_API_SECRET, CENSUS_API_KEY
捆绑的技能、规则和斜线命令是Gemini CLI特有的,被其他客户端忽略了,MCP工具本身在任何地方都是可用的。
示例提示
安装后,尝试询问型号:
- “显示我的Fivetran帐户的健康摘要。”
- “现在哪些连接器坏了,最近的错误是什么?”
- “将每个连接器映射到其目的地,并向我显示沿袭。”
- “找到负责同步的连接器
orders桌子。" - 导出涵盖用户、团队、角色和连接器的审核报告
- “列出所有人口普查同步,并显示最近的同步运行情况
12345." - “在连接器上强制同步
abc_def并在完成时报告。"
工具目录
看 DOCS.md 用于自动生成每个工具的参考、描述和参数(使用重新生成 npm run docs).
工具分为三组注册(参见 src/):
定制审计和运营(src/custom_tools.ts)
阅读/审核: test_connection, get_account_health_summary, get_lineage_report, analyze_connector_issues, find_connector_by_table, export_audit_report, export_fivetran_data, get_next_page, list_connectors, get_connector_details, get_connector_schema, get_connector_columns.
书写(门后 FIVETRAN_ALLOW_WRITES): create_connector, update_connector, delete_connector, sync_connector, resync_connector, run_connection_tests, create_destination, update_destination, delete_destination, run_destination_tests, create_group, update_group, delete_group, add_user_to_group, remove_user_from_group, create_connect_card, update_schema_config, update_database_schema_config, update_table_config, update_column_config, reload_connector_schema, drop_blocked_columns, resync_connector_tables, drop_blocked_column.
看 DOCS.md 用于始终保持最新、自动生成的参考。
Fivetran REST API(src/generated_tools.ts)
生成了约63个只读工具 openapi.json,大致分为:
- 帐户和身份验证:
get_account_info,get_account_log_service_details,list_log_services,get_log_service_details,get_system_keys,get_system_key_details. - 用户和团队:
list_all_users,user_details,list_all_teams,team_details,list_users_in_team,get_user_in_team,获得会员资格。 - 群组:
list_all_groups,group_details,group_service_account,group_ssh_public_key,list_all_users_in_group. - 连接器:
list_all_connections,list_all_connections_in_group,connection_details,connection_schema_config,connection_column_config,connection_state,metadata_connectors,metadata_public_connectors,metadata_connector_config. - 目的地:
list_destinations,destination_details. - 角色:
list_all_roles. - 证书和指纹:
get_connection_certificates_list,get_connection_certificate_details,get_connection_fingerprints_list,get_connection_fingerprint_details,加上目的地等效物。 - 网络:
get_proxy_agent,get_proxy_agent_details,get_proxy_agent_connections,get_private_links,get_private_link_details,get_hybrid_deployment_agent_list,get_hybrid_deployment_agent. - 网络钩子:
list_all_webhooks,webhook_details. - 变换:
transformations_list,transformation_details,list_all_transformation_projects,transformation_project_details,transformation_package_metadata_list,transformation_package_metadata_details. - 连接器SDK:
list_connector_sdk_packages,get_connector_sdk_package,download_connector_sdk_package.
人口普查激活(src/census_tools.ts)
activations_list_workspaces, activations_get_workspace, activations_list_users, activations_list_syncs, activations_get_sync, activations_list_sync_runs, activations_get_sync_run, activations_list_sources, activations_list_destinations.
中生成的Fivetran API工具 src/generated_tools.ts 源自 openapi.json。原始代码生成器未捆绑在此仓库中;更新 generated_tools.ts 匹配 openapi.json 当规格发生变化时(保持 toToolResult(response) 现有工具使用的返回模式)。
捆绑式扩展资产
这些随附扩展程序,并在Gemini CLI中自动加载。其他MCP客户端忽略了它们——底层工具仍然可以直接调用。
| Path | 它是什么 |
|---|---|
skills/ |
快速设计的剧本(fivetran-health-report, fivetran-security-audit, fivetran-activations-audit, fivetran-connector-onboarding, fivetran-lineage-explorer, fivetran-sync-triage).每个文件夹都有一个 SKILL.md 提供模型应遵循的工作流。 |
rules/ |
加载扩展时始终适用的行为规则(例如。 fivetran-audit.md). |
references/ |
可重复使用的模板(例如。 audit-templates.md)这些技能用于一致的报告格式。 |
commands/fivetran/ |
Gemini CLI斜线命令(/audit, /health-report, /lineage, /onboarding, /sync-triage, /activations-audit, /status, /export_audit, /skill-creator). |
测试
单元测试通过以下方式运行 Vitest 并使用嘲笑 fetch -不需要实时API凭据。
npm test # one-shot
npm run test:watch
现场测试 tests/ 并涵盖编校逻辑、CSV导出的JSON扁平化和429重试上限。
发展
npm run dev # run from source via tsx (no build step)
npm run build # tsc → dist/
npm run lint # prek (pre-commit hooks)
npm run validate # validate skills/rules frontmatter
npm run docs # regenerate DOCS.md from the tool registry
npm run bump <type> # bump version (patch|minor|major|x.y.z) in all 3 locations
添加一个新工具
- 定制工具 (审计、沿袭、多步骤逻辑):添加
server.tool(...)打电话src/custom_tools.ts. - 普查工具:添加它
src/census_tools.ts. - 从新的Fivetran端点生成的工具:将其添加到
openapi.json并反映出变化src/generated_tools.ts,遵循现有的工具模式(Zod params+toToolResult(response)). - 跑
npm test && npm run build在承诺之前。prek钩子在提交时运行。
版本控制
该版本在三个必须保持同步的地方进行了硬编码: package.json, gemini-extension.json,以及 src/index.ts (在握手过程中向MCP客户端报告)。 npm run bump <patch|minor|major> 通过以下方式同时更新所有三个 scripts/bump-version.mjs.
要在不用手触摸文件的情况下剪切释放,请触发 版本颠簸 GitHub行动(Actions → Version Bump → Run workflow,选择补丁/次要/主要)。它运行bump脚本,提交,创建一个 vX.Y.Z 标签和推送。
持续集成
GitHub操作(.github/workflows/):
- 持续集成 (
ci.yml)--每次推/公关main:构建(tsc),运行Vitest套件,并运行所有prek钩子(viauvx prek). - 版本颠簸 (
version-bump.yml)--手册workflow_dispatch如上所述的触发器。
项目布局
.
├── src/
│ ├── index.ts # MCP server entrypoint (stdio transport, health checks)
│ ├── common.ts # Fivetran + Census HTTP clients, redaction, retry cap
│ ├── custom_tools.ts # Audit, lineage, export, write ops
│ ├── generated_tools.ts # Auto-generated read-only Fivetran tools
│ └── census_tools.ts # Census (Activations) tools
├── tests/ # Vitest unit tests (mocked fetch)
├── skills/ # Gemini CLI skill packs (SKILL.md per folder)
├── rules/ # Gemini CLI behavioral rules
├── references/ # Report/audit templates referenced by skills
├── commands/fivetran/ # Gemini CLI slash command definitions (.toml)
├── scripts/
│ ├── generate-docs.mts # Tool registry → DOCS.md
│ ├── bump-version.mjs # Version bump across the 3 locations
│ └── validate-template.mjs # Skills/rules frontmatter validation
├── openapi.json # Fivetran REST API spec (source for generated tools)
├── openapi_census.json # Census API spec
├── gemini-extension.json # Gemini CLI extension manifest
└── prek.toml # Pre-commit hook config
许可证
麻省理工学院 ©埃德加·奥乔亚