Skip to content

Add ContextMatic Plugin#1166

Draft
mohammadali2549 wants to merge 13 commits intogithub:stagedfrom
apimatic:add-context-matic-plugin
Draft

Add ContextMatic Plugin#1166
mohammadali2549 wants to merge 13 commits intogithub:stagedfrom
apimatic:add-context-matic-plugin

Conversation

@mohammadali2549
Copy link
Copy Markdown

@mohammadali2549 mohammadali2549 commented Mar 25, 2026

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds new a plugin and skills in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, or workflow with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the staged branch for this pull request.

Description

This pull request adds a new context-matic plugin to Awesome Copilot, along with two supporting skills and the related generated marketplace and README updates.

The plugin integrates APIMatic's hosted ContextMatic MCP server so GitHub Copilot can retrieve version-aware API and SDK context at runtime instead of relying on generic or outdated examples from model training data. This is aimed at third-party API integration scenarios where correctness depends on the exact API surface, authentication flow, model definitions, and endpoint contracts.

What this PR adds

  • A new context-matic plugin definition and marketplace registration
  • A plugin-level .mcp.json that registers the hosted ContextMatic MCP server
  • A plugin README explaining the workflow, supported APIs, tools, and usage examples
  • A new integrate-context-matic skill for end-to-end third-party API integration workflows
  • A new onboard-context-matic skill for first-time discovery and guided onboarding
  • Generated documentation updates in the plugin and skill README indexes

Why this is being added

When developers ask Copilot to integrate an external API, models often have to guess based on outdated training data or public examples that may be stale, incomplete, or mismatched to the actual SDK version in use. ContextMatic addresses that gap by grounding the agent in authoritative, SDK-native API context exposed through MCP tools.

This makes the agent more useful for API integration scenarios.

Benefits

  • Significantly reduces token usage when compared with integration without ContextMatic
  • Reduces hallucinated or outdated API usage patterns
  • Improves accuracy for authentication, endpoint selection, and request/response model usage
  • Gives users a clearer workflow for discovering supported APIs and integrating them correctly
  • Helps first-time users understand what the MCP server can do and how to use it effectively
  • Expands the Awesome Copilot plugin marketplace with a practical third-party API integration toolkit

Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • Update to existing instruction, prompt, agent, plugin, skill, or workflow.
  • Other (please specify):

By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

Copilot AI review requested due to automatic review settings March 25, 2026 12:34
@mohammadali2549 mohammadali2549 changed the title Integrate ContextMatic Plugin Add ContextMatic Plugin Mar 25, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new ContextMatic plugin to Awesome Copilot, providing an MCP server configuration plus two skills (onboarding + integration) and registering the plugin/skills in the repository’s generated docs and marketplace metadata.

Changes:

  • Introduces two new skills: /integrate-context-matic and /onboard-context-matic.
  • Adds a new plugins/context-matic/ plugin with README, MCP server config, and plugin metadata.
  • Updates skills/plugins indices and marketplace listing to include the new additions.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
skills/onboard-context-matic/SKILL.md New interactive onboarding/tour skill for the ContextMatic MCP server.
skills/integrate-context-matic/SKILL.md New workflow skill intended to guide end-to-end third-party API integration via ContextMatic tools.
plugins/context-matic/README.md Plugin documentation describing tools, supported APIs, and usage examples.
plugins/context-matic/.mcp.json MCP server registration/config for the plugin.
plugins/context-matic/.github/plugin/plugin.json Plugin metadata (name/description/version/keywords/skill references).
docs/README.skills.md Adds the two new skills to the skills index table.
docs/README.plugins.md Adds the new plugin to the plugins index table.
.github/plugin/marketplace.json Registers the plugin in the marketplace list used by tooling/CI.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@mohammadali2549 mohammadali2549 marked this pull request as draft March 25, 2026 12:43
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 31, 2026

🔍 Skill Validator Results

3 resource(s) checked | ✅ All checks passed

Full output
Found 2 skill(s)
[integrate-context-matic] 📊 integrate-context-matic: 1,412 BPE tokens [chars/4: 1,495] (detailed ✓), 12 sections, 0 code blocks
[integrate-context-matic]    ⚠  No code blocks — agents perform better with concrete snippets and commands.
[integrate-context-matic]    ⚠  No numbered workflow steps — agents follow sequenced procedures more reliably.
[onboard-context-matic] 📊 onboard-context-matic: 2,859 BPE tokens [chars/4: 3,068] (standard ~), 13 sections, 12 code blocks
[onboard-context-matic]    ⚠  Skill is 2,859 BPE tokens (chars/4 estimate: 3,068) — approaching "comprehensive" range where gains diminish.
�[32m✅ All checks passed (2 skill(s))�[0m

mohammadali2549 and others added 2 commits March 31, 2026 11:11
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 6 comments.

"email": "developer@apimatic.io"
},
"homepage": "https://www.apimatic.io",
"repository": "https://github.com/apimatic/context-matic",
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency with other local plugins (and the plugin.json example in CONTRIBUTING.md), the repository field should point to this repo (https://github.com/github/awesome-copilot). The upstream project link is already covered in the plugin README’s “Source” section, so keeping repository as Awesome Copilot avoids confusing “where this plugin lives” vs “upstream inspiration.”

Suggested change
"repository": "https://github.com/apimatic/context-matic",
"repository": "https://github.com/github/awesome-copilot",

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +8
# ContextMatic Plugin

Coding agents hallucinate APIs. APIMatic Context gives them curated, versioned API and SDK docs.

When a developer asks their agent to "integrate the payments API," it normally guesses, pulling from outdated training data or generic patterns that don't match the actual SDK. ContextMatic solves this by giving the agent authoritative, version-aware, SDK-native context at the exact moment it's needed.

## What It Includes

Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All other plugin READMEs include a short “Installation” section with the copilot plugin install <name>@awesome-copilot command. Adding it here would make the plugin consistent with the repo’s plugin docs and reduce friction for first-time users.

Copilot uses AI. Check for mistakes.
| 2 | `add_skills` (`language=typescript`) | Adds reusable language-specific skills such as conventions guidance so the project setup matches future integration work. |
| 3 | `fetch_api` (`language=typescript`) | Discovers Twilio is available; returns its `key` |
| 4 | `ask` (`key=twilio`, query=_"How do I initialize the Twilio TypeScript client?"_) | Returns exact SDK setup code with auth configuration |
| 5 | `update_activity` (`milestone=auth_configured`) | Records that credentials are wired into the app and the integration is ready for the first live call |
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This walkthrough calls update_activity(milestone=auth_configured) immediately after an ask response, but auth_configured is supposed to be recorded only after credentials are actually written into the runtime environment and referenced in code. Adjust the example ordering (or clarify that steps 4–5 happen after the developer applies the returned code/config).

Suggested change
| 5 | `update_activity` (`milestone=auth_configured`) | Records that credentials are wired into the app and the integration is ready for the first live call |
| 5 | `update_activity` (`milestone=auth_configured`) | After the returned SDK/auth configuration has been added to the app, records that credentials are wired into the app and the integration is ready for the first live call |

Copilot uses AI. Check for mistakes.
Comment on lines +34 to +49
After explaining the problem the server solves, walk through each of the four tools as if
introducing them to someone using the server for the first time. For each tool, explain:
- **What it is** — give it a memorable one-line description
- **When you would use it** — a concrete, relatable scenario
- **What it gives back** — the kind of output the user will see

Use the following facts as your source, but say it conversationally — do not present a raw table:

> | Tool | What it does | When to use it | What you get back |
> |---|---|---|---|
> | `fetch_api` | Lists all APIs available on this server for a given language | "What APIs can I use?" / Starting a new project | A named list of available APIs with short descriptions |
> | `ask` | Answers integration questions with version-accurate guidance and code samples | "How do I authenticate?", "Show me the quickstart", "What's the right way to do X?" | Step-by-step guidance and runnable code samples grounded in the actual SDK version |
> | `model_search` | Looks up an SDK model/object definition and its typed properties | "What fields does an Order have?", "Is this property required?" | The model's name, description, and a full typed property list (required vs. optional, nested types) |
> | `endpoint_search` | Looks up an endpoint method, its parameters, response type, and a runnable code sample | "Show me how to call createOrder", "What does getTrack return?" | Method signature, parameter types, response type, and a copy-paste-ready code sample |

End this section by telling the user that you'll demonstrate all four tools live during the tour,
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This onboarding skill says it will demonstrate “the four tools,” but the plugin README/tooling describes additional tools (update_activity, add_guidelines, add_skills). Either expand Phase 0 to cover all available tools or clarify that you’re only covering the core discovery/integration tools in this tour.

Copilot uses AI. Check for mistakes.

Before calling, say something like: *"Let me search for the `[model name]` model so you can see what the result looks like."*

Pick a **representative model** from the chosen API (examples below) and call **`model_search`**:
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Phase 5 instructs to call model_search but doesn’t explicitly remind the agent to pass the required key (chosen API) and language parameters (detected language). Since earlier phases emphasize reusing these values, it would be clearer/less error-prone to specify the full parameter set here.

Suggested change
Pick a **representative model** from the chosen API (examples below) and call **`model_search`**:
Pick a **representative model** from the chosen API (examples below) and call **`model_search`** with:
- `key` = the previously chosen API key (for example, `paypal` or `spotify`)
- `language` = the detected project language
- `query` = the representative model name you picked

Copilot uses AI. Check for mistakes.
Comment on lines +185 to +191
Pick a **representative endpoint** for the chosen API and call **`endpoint_search`**:

| API key | Good demo query |
|---|---|
| `paypal` | `createOrder` |
| `spotify` | `getTrack` |

Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly to Phase 5, Phase 6 tells the agent to call endpoint_search but doesn’t explicitly specify passing key and language along with the endpoint query. Adding the explicit parameter list here will prevent partial/invalid tool calls.

Suggested change
Pick a **representative endpoint** for the chosen API and call **`endpoint_search`**:
| API key | Good demo query |
|---|---|
| `paypal` | `createOrder` |
| `spotify` | `getTrack` |
Pick a **representative endpoint** for the chosen API and call **`endpoint_search`** with an explicit argument object:
- `key`: the API key you are demonstrating (for example, `paypal` or `spotify`)
- `query`: the endpoint / SDK method name you want to look up (for example, `createOrder` or `getTrack`)
- `language`: the user's project language (for example, `"typescript"` or `"python"`)
For example:
| API key (`key`) | Endpoint name (`query`) | Example `language` |
|---|---|---|
| `paypal` | `createOrder` | user's project language |
| `spotify` | `getTrack` | user's project language |

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants