mcpField
O
onboard-context-matic

onboard-context-matic

github.com/github开发40.5k1.0k 次安装今天更新
代码仓库

关于 onboard-context-matic

onboard-context-matic 是用于 context-matic MCP 服务的交互式引导技能,带领 Agent 探索 API,并查询版本准确的集成说明、模型、端点和代码示例。

主要功能

  1. 01交互式服务引导流程
  2. 02根据项目文件识别语言
  3. 03发现可用 API
  4. 04查询 SDK 模型及属性
  5. 05查找端点签名与示例

适用场景

  1. 01探索项目语言可用的 API
  2. 02检查模型字段的必填与可选状态
  3. 03查找端点参数和响应类型
  4. 04获取特定版本的集成示例

MCP 相关

该技能引导 Agent 使用 context-matic MCP 服务的 fetch_api、ask、model_search 和 endpoint_search 工具,获取 API 列表、版本准确的集成指导、模型定义、端点详情及可运行代码示例。

安装

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

$npx skills add https://github.com/github/awesome-copilot --skill onboard-context-matic

安装后在 Claude Code 中输入/onboard-context-matic确认已加载。

详细介绍

入门指南:ContextMatic MCP

本技能将带领你以交互方式浏览 context-matic MCP 服务。请按顺序完成每个阶段。在每个交互点之后停下,等待用户回复后再继续。

Agent 行为准则——在整个技能过程中始终遵守:

  • 切勿叙述技能结构。 不要说阶段名称、步骤编号,或任何听起来像在朗读指令的内容(例如,"在第 1 阶段我将……"、"步骤 1a:"、"根据本技能……")。请将导览呈现为自然的对话。
  • 在每次调用工具前先说明。 一句话即可——告诉用户你即将查找什么以及为什么,然后调用工具。例如:"让我先调出你项目语言可用的 API 列表。" 这样可以让用户始终知情,避免出现无声、无解释的停顿。

阶段 0 — 开场说明与工具导览

先用简洁、通俗的语言解释该服务的作用。根据以下事实用自己的话表述:

context-matic MCP 服务解决了 AI 辅助编码的一个根本问题:通用模型是在公开代码上训练的,而这些代码往往过时、有误,或完全缺少较新的 SDK 版本。该服务充当一个实时的、版本感知的 grounding 层。Agent 不再根据训练数据猜测 SDK 用法,而是向该服务查询与当前 API 版本及项目编程语言相匹配的确切 SDK 模型、端点、鉴权模式和可运行代码示例。

在解释完该服务所解决的问题后,逐一介绍这四个工具,就像向第一次使用该服务的人介绍一样。对每个工具,说明:

  • 它是什么——给出一句便于记忆的描述
  • 何时使用它——一个具体、贴近实际的场景
  • 它返回什么——用户将看到的输出类型

以以下事实为来源,但请用对话式的方式表述——不要直接呈现原始表格:

工具功能何时使用返回内容
fetch_api根据 API 的 key/标识符和语言返回精确匹配项,或列出某一语言下的所有 API。key 是 fetch_api 返回的机器可读标识符(例如 paypal),而不是人类可读的显示名称(例如 "PayPal Server SDK")。"我可以使用哪些 API?" / 启动新项目 / "你们有 PayPal SDK 吗?"一份带名称和简短描述的可用 API 列表(完整目录),或在提供标识符/key 和语言时返回一个精确的 API 匹配项
ask以版本准确的指导及代码示例回答集成问题"我该如何鉴权?"、"给我看看快速入门"、"做 X 的正确方式是什么?"基于实际 SDK 版本的分步指导和可运行代码示例
model_search查询 SDK 模型/对象定义及其类型化属性"Order 有哪些字段?"、"这个属性是必填的吗?"模型的名称、描述,以及完整的类型化属性列表(必填与可选、嵌套类型)
endpoint_search查询端点方法、其参数、响应类型,以及可运行的代码示例"给我看看如何调用 createOrder"、"getTrack 返回什么?"方法签名、参数类型、响应类型,以及可直接复制粘贴的代码示例

在本节结尾告诉用户,你将在导览过程中现场演示这四个核心的发现与集成工具,并立即从 fetch_api 开始。明确说明本次导览聚焦于这些核心的 ContextMatic 服务工具,而不是更广泛工作流中可能用到的所有辅助工具。


阶段 1 — 展示可用 API

1a. 检测项目语言

在调用 fetch_api 之前,通过检查工作区文件来确定项目的主要语言:

  • 查找 package.json 和 .ts/.tsx 文件 → typescript
  • 查找 *.csproj 或 *.sln → csharp
  • 查找 requirements.txt、pyproject.toml 或 *.py → python
  • 查找 pom.xml 或 build.gradle → java
  • 查找 go.mod → go
  • 查找 Gemfile 或 *.rb → ruby
  • 查找 composer.json 或 *.php → php
  • 如果未找到任何项目文件,则静默回退到 typescript。

保存检测到的语言 —— 你需要将它传递给之后每一次工具调用。

1b. 获取可用的 API

告诉用户你检测到了哪种语言,并且你正在获取可用的 API —— 例如:“我可以看到这是一个 TypeScript 项目。让我获取可用于 TypeScript 的 API。”

调用 fetch_api,其中 language = 检测到的语言,key = "",这样该工具会返回可用的 API 完整列表。

将结果显示为格式化列表,展示每个 API 的 name 以及对其 description 的一句话摘要。不要截断或跳过任何条目。

示例显示格式(根据实际结果调整):

Here are the APIs currently available through this server:

1. PayPal Server SDK   — Payments, orders, subscriptions, and vault via PayPal REST APIs.
2. Spotify Web API     — Music/podcast discovery, playback control, and library management.
....

阶段 2 —— API 选择(交互)

询问用户:

“你想探索这些 API 中的哪一个?只需说出名称或编号即可。”

在继续之前等待用户的回复。

保存 fetch_api 响应中所选 API 的 key 值 —— 你需要将它传递给之后每一次工具调用。同时记下该 API 的名称,以便在说明性文本中使用。


阶段 3 —— 解释所选 API

在调用之前,说类似这样的话:“好选择 —— 让我为你获取 [API 名称] 的概览。”

调用 ask,参数如下:

  • key = 所选 API 的 key
  • language = 检测到的语言
  • query = "Give me a high-level overview of this API: what it does, what the main controllers or modules are, how authentication works, and what the first step to start using it is."

以对话方式呈现响应。重点说明:

  • 该 API 能做什么(使用场景)
  • 认证如何工作(凭据、OAuth 流程等)
  • 主要的 SDK 控制器或命名空间
  • 要安装的 NPM/pip/NuGet/等包名

阶段 4 —— 使用项目语言进行集成(交互)

询问用户:

“[API 名称] 中是否有你想学习如何使用某个特定部分 —— 例如, 创建订单、搜索轨迹或管理订阅?还是让我向你展示 完整的集成快速入门?”

等待用户的回复。

在调用之前,说类似这样的话:“好的 —— 让我查一下。” 或 “当然,让我调出快速入门。”

调用 ask,参数如下:

  • key = 所选 API 的 key
  • language = 检测到的语言
  • query = 用户陈述的目标,或者如果他们要求完整指南,则为 "Show me a complete integration quickstart: install the SDK, configure credentials, and make the first API call."

呈现响应,包括按原样返回的任何代码示例。


阶段 5 — 演示 model_search

告诉用户:

"现在让我展示一下 model_search 是如何工作的。这个工具让你可以查找任意 SDK 模型或 对象定义——它带类型的属性、哪些是必填哪些是选填,以及它们使用什么类型。 它支持部分名称匹配,且区分大小写。"

在调用之前,说类似这样的话:"让我搜索一下 [model name] 模型,这样你就能看到结果长什么样了。"

从所选 API 中挑一个有代表性的模型(示例如下),并用以下参数调用 model_search:

  • key = 之前选定的 API key(例如 paypal 或 spotify)
  • language = 检测到的项目语言
  • query = 你挑选的有代表性的模型名称
API key合适的演示查询
paypalOrder
spotifyTrackObject

展示结果,并指出:

  • 确切的模型名称及其描述
  • 几个有意思的带类型属性(突出显示选填与必填)
  • 任何嵌套的模型引用(例如 PurchaseUnit[] | undefined)

告诉用户:

"你可以按名称搜索任意模型——部分匹配也可以。当你需要了解 [API name] 中某个 特定模型的结构时,随时让我帮你查找。"


阶段 6 — 演示 endpoint_search

告诉用户:

"类似地,endpoint_search 可以查找任意 SDK 方法——确切的参数、它们的类型、 响应类型,以及一段可直接放入你项目的、完全可运行的代码示例。"

在调用之前,说类似这样的话:"让我获取一下 [endpoint name] 端点,这样你就能看到参数和一段实时代码示例了。"

为所选 API 挑一个有代表性的端点,并用显式的参数对象调用 endpoint_search:

  • key = 你正在演示的 API key(例如 paypal 或 spotify)
  • query = 你想查找的端点 / SDK 方法名(例如 createOrder 或 getTrack)
  • language = 用户的项目语言(例如 "typescript" 或 "python")

例如:

API key(key)端点名称(query)示例 language
paypalcreateOrder用户的项目语言
spotifygetTrack用户的项目语言
展示结果,并指出:
  • 方法名称及描述
  • 请求参数及其类型
  • 响应类型
  • 完整的代码示例(按原样呈现)

告诉用户:

"注意,这段代码示例是开箱即用的——它从正确的 SDK 导入、初始化 客户端、调用端点,并处理错误。你可以按方法名或区分大小写的部分片段 搜索任意端点。"


阶段 7 — 收尾:你可以问些什么

以一份总结清单结束本次导览,列出用户现在可以让 Agent 做的事情。以 格式化菜单的形式呈现:


你可以用这个 MCP 做什么

快速上手:你的第一次 API 调用

/integrate-context-matic Set up the Spotify TypeScript SDK and fetch my top 5 tracks.
Show me the complete client initialization and the API call.
/integrate-context-matic How do I authenticate with the Twilio API and send an SMS?
Give me the full PHP setup including the SDK client and the send call.
/integrate-context-matic Walk me through initializing the Slack API client in a Python script and posting a message to a channel.

框架特定的集成

/integrate-context-matic I'm building a Next.js app. Integrate the Google Maps Places API
to search for nearby restaurants and display them on a page. Use the TypeScript SDK.
/integrate-context-matic I'm using Laravel. Show me how to send a Twilio SMS when a user
registers. Include the PHP SDK setup, client initialization, and the controller code.
/integrate-context-matic I have an ASP.NET Core app. Add Twilio webhook handling so I can receive delivery status callbacks when an SMS is sent.

串联工具以实现完整集成

/integrate-context-matic I want to add real-time order shipping notifications to my
Next.js store. Use Twilio to send an SMS when the order status changes to "shipped". Show me
the full integration: SDK setup, the correct endpoint and its parameters, and the TypeScript code.
/integrate-context-matic I need to post a Slack message every time a Spotify track changes
in my playlist monitoring app. Walk me through integrating both APIs in TypeScript — start by
discovering what's available, then show me the auth setup and the exact API calls.
/integrate-context-matic In my ASP.NET Core app, I want to geocode user addresses using
Google Maps and cache the results. Look up the geocode endpoint and response model, then
generate the C# code including error handling.

调试与错误处理

/integrate-context-matic My Spotify API call is returning 401. What OAuth flow should I
be using and how does the TypeScript SDK handle token refresh automatically?
/integrate-context-matic My Slack message posts are failing intermittently with rate limit
errors. How does the Python SDK expose rate limit information and what's the recommended retry
pattern?

"本次导览到此结束!你可以问我上面任意一项,或者直接告诉我你想构建什么—— 我会用这个服务为你提供准确的、针对特定版本的指导。"


给 Agent 的说明

  • 如果用户选择的 API 不在 fetch_api 的结果中,告诉他们该 API 目前不可用, 并提议用以可用的 API 继续导览。
  • 本技能中的所有工具调用都是只读的——它们不会修改项目、安装包, 或写入文件,除非用户明确要求你继续进行集成。
  • 当展示来自 endpoint_search 或 ask 的代码示例时,请用带正确语言标签的 围栏代码块呈现。

评论

支持 Markdown