mcpField
B
blink-connectors

blink-connectors

github.com/blink-new开发438 次安装2 周前更新
代码仓库

关于 blink-connectors

blink-connectors 是 Blink 的连接器技能与命令行/API 使用指南,面向通过已授权服务访问第三方 API 的开发者。它涵盖连接状态、请求格式和服务特定注意事项。

主要功能

  1. 01检查连接器状态
  2. 02通过连接器执行 API 请求
  3. 03列出已连接的 OAuth 提供方
  4. 04支持命令行与 SDK 调用
  5. 05提供服务路径及错误处理说明

适用场景

  1. 01读取 Slack 频道或 Notion 页面
  2. 02查询 Google Sheets 数据
  3. 03通过 Google Ads 运行报告
  4. 04诊断授权、权限或配额错误

MCP 相关

该技能列出 MCP 工具 blink_connector_exec、blink_connector_linked 和 blink_connector_status,供 MCP 客户端执行连接器请求并检查授权状态。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/blink-new/blink-plugin --skill blink-connectors

安装后在 Claude Code 中输入/blink-connectors确认已加载。

详细介绍

入门

# List available providers
blink connector providers

# Check connection status
blink connector status slack

# Execute an API call
blink connector exec slack /conversations GET

MCP 工具

工具说明
blink_connector_exec通过已连接的提供商执行 API 调用
blink_connector_linked列出当前已为项目连接的所有 OAuth 提供商
blink_connector_status检查特定提供商的连接状态

前置条件

首次 OAuth 连接必须在浏览器中完成,访问 blink.new/settings?tab=connectors。用户对每个提供商授权一次后,CLI/MCP/SDK 即可进行 API 调用。

SDK 用法

// Check status
const status = await blink.connectors.status('slack')

// GET request
const channels = await blink.connectors.execute('slack', {
  method: '/conversations',
  http_method: 'GET',
  params: { types: 'public_channel,private_channel' }
})

// POST request
await blink.connectors.execute('slack', {
  method: '/chat/postMessage',
  http_method: 'POST',
  params: { channel: 'C1234', text: 'Hello from Blink!' }
})

可用提供商

提供商ID常用端点
Slackslack/conversations、/chat/postMessage、/users
Discorddiscord/user、/guilds、/channels/{id}/messages
Notionnotion/search、/databases、/pages
Google Drivegoogle_drive/files
Google Calendargoogle_calendar/events
Google Sheetsgoogle_sheets/spreadsheets/{id}/values/{range}
Google Docsgoogle_docs/documents
Google Slidesgoogle_slides/presentations
LinkedInlinkedin/userinfo、/ugcPosts
HubSpothubspot/contacts、/companies、/deals
Salesforcesalesforce/query、/sobjects/{type}
GitHubgithub/user、/repos、/issues — 克隆/推送/PR 请参阅 blink-github 技能
Stripestripe/customers、/charges、/subscriptions
Jirajira/search、/issue、/project
Microsoftmicrosoft/me、/messages、/events
Airtableairtable/bases、/records

另有 20 多个提供商——运行 blink connector providers 查看完整列表。

CLI 示例

# Slack: list channels
blink connector exec slack /conversations GET

# Notion: search pages
blink connector exec notion /search POST '{"query":"meeting notes"}'

# Google Sheets: read data
blink connector exec google_sheets "/spreadsheets/SHEET_ID/values/Sheet1!A1:D10" GET

# HubSpot: list contacts
blink connector exec hubspot /contacts GET '{"limit":50}'

# Salesforce: SOQL query
blink connector exec salesforce /query GET '{"q":"SELECT Id,Name FROM Account LIMIT 10"}'

CLI 语法:blink connector exec <provider> <endpoint> [method] [params]

方法路径规则

  1. 路径必须以 / 开头——使用 /conversations,而不是 conversations
  2. 动态 ID 放在路径中——/channels/${channelId}/messages
  3. 提供商 ID 使用下划线——google_drive、google_calendar、google_sheets
  4. GET 参数会变成查询参数;POST 参数会变成 JSON 请求体
  5. CLI 参数中的无效 JSON 会导致硬性失败(退出码为 1)——过去,错误的 JSON 会被静默地发送为 {}。如果看到 Invalid JSON for params: ...,请修正引号(对内部双引号进行 Shell 转义,或使用 --input @file.json)。

Google Ads(composio_googleads)——读取数据

每个路径都必须以 API 版本开头,客户 ID 必须放在路径中,绝不能放在请求体中。 没有顶层 /search 资源——/search、/googleads/search 和 /searchStream 都会返回 404。

# Find the customer id
blink connector exec composio_googleads /v23/customers:listAccessibleCustomers GET

# Run a report (GAQL)
blink connector exec composio_googleads /v23/customers/CUSTOMER_ID/googleAds:search POST \
  '{"query":"SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date DURING LAST_14_DAYS"}'

googleAds:searchStream 的工作方式相同,但会将其载荷(包括错误)封装在数组中返回。

配额(RESOURCE_EXHAUSTED,范围 DEVELOPER)

当 429 响应中的 rateScope: DEVELOPER 表示已触及 Composio 共享开发者令牌的上限——该令牌由多个租户共用——而非用户的 Google Ads 账号上限。用户对自己的账号进行任何操作都无法解决此问题。请遵守 retryDelay(通常为 10 小时以上),并告知用户,不要继续重试。

rateScope: ACCOUNT 则表示相反:这是用户自己的账号速率限制,延迟通常较短。

Google Ads (composio_googleads) — 编写广告系列

旧的剔除假值变通方案已废弃。 Composio 的代理曾从 POST 请求正文中 删除 false、0、{} 和 [] (#3324)。该问题已于 2026-07-24 在上游修复,并于 2026-07-29 在实时代理上重新验证。请照常发送假值。 不要仅为避免使用 manualCpc: {} 而构建组合出价 策略;也不要省略你希望关闭的网络设置——省略意味着“使用账户默认值”,这与 false 并不相同。

  1. 先使用 partialFailure: true 和 validateOnly: true 进行试运行。 Google 会返回状态码 200,并附带包含完整 fieldPathElements 列表的 partialFailureError,因此你可以一次看到所有错误字段,而不是每次往返只看到一个错误。 只有试运行没有问题后,才将 validateOnly 改为 false。

  2. 可以内联使用空 proto 标记。 { "manualCpc": {} } 可以满足 campaign_bidding_strategy 的要求——已验证。如果你确实需要在广告系列之间共享出价,组合策略仍然是正确选择,但它不再是变通方案。

  3. finalUrls 应放在 Asset 顶层,而不是 sitelinkAsset 内。 这一点 仍然成立,但这是 Google 模式的规则,并非代理的特殊行为: SitelinkAsset 没有 finalUrls 字段,因此将其嵌套会返回 Invalid JSON payload ... Unknown name "finalUrls"。

  4. v23 要求创建广告系列时提供 containsEuPoliticalAdvertising。 请使用 字符串枚举:"containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"。 省略该字段会返回 contains_eu_political_advertising: REQUIRED。

  5. networkSettings 的值必须是真正的布尔值。 根据需要将其设为 true 或 false。 请注意,Google 会在搜索广告系列中拒绝 targetGoogleSearch: false,并返回 OPERATION_NOT_PERMITTED_FOR_CONTEXT——这是 Google 的规则, 并非字段被剔除。

调试步骤
# Dry-run and read the full error list
blink connector exec composio_googleads /v23/customers/CUSTOMER_ID/campaigns:mutate POST \
  '{"operations":[...],"partialFailure":true,"validateOnly":true}'

# Then: read partialFailureError.details[].errors[].location.fieldPathElements
# to see exactly which field Google rejected, fix it, re-run with validateOnly:false

对于 Google Ads,优先使用 connector exec(代理),而非 connector tool-execute(原生 工具目录)。原生路径会将 Google 的错误折叠为不透明的 Error executing the tool GOOGLEADS_*,不提供字段详情。

错误代码

代码含义
CONNECTOR_NOT_CONNECTED用户尚未授权此提供商
CONNECTOR_DISABLED此项目已禁用该提供商
MISSING_SCOPE重新连接并授予其他权限
*_API_ERROR上游 API 错误(例如 SLACK_API_ERROR)

令牌刷新由 Blink 后端自动处理。

评论

支持 Markdown