{"id":"136bd2fc-d444-4536-a307-f2ac0768a835","shortId":"vps7wu","kind":"skill","title":"integrate-context-matic","tagline":"Discovers and integrates third-party APIs using the context-matic MCP server. Uses `fetch_api` to find available API SDKs, `ask` for integration guidance, `model_search` and `endpoint_search` for SDK details. Use when the user asks to integrate a third-party API, add an API clien","description":"# API Integration\n\nWhen the user asks to integrate a third-party API or implement anything involving an external API or SDK, follow this workflow. Do not rely on your own knowledge for available APIs or their capabilities — always use the context-matic MCP server.\n\n## When to Apply\n\nApply this skill when the user:\n- Asks to integrate a third-party API\n- Wants to add a client or SDK for an external service\n- Requests implementation that depends on an external API\n- Mentions a specific API (e.g. PayPal, Twilio) and implementation or integration\n\n## Workflow\n\n### 1. Ensure Guidelines and Skills Exist\n\n#### 1a. Detect the Project's Primary Language\n\nBefore checking for guidelines or skills, identify the project's primary programming language by inspecting the workspace:\n\n| File / Pattern | Language |\n|---|---|\n| `*.csproj`, `*.sln` | `csharp` |\n| `package.json` with `\"typescript\"` dep or `.ts` files | `typescript` |\n| `requirements.txt`, `pyproject.toml`, `*.py` | `python` |\n| `go.mod`, `*.go` | `go` |\n| `pom.xml`, `build.gradle`, `*.java` | `java` |\n| `Gemfile`, `*.rb` | `ruby` |\n| `composer.json`, `*.php` | `php` |\n\nUse the detected language in all subsequent steps wherever `language` is required.\n\n#### 1b. Check for Existing Guidelines and Skills\n\nCheck whether guidelines and skills have already been added for this project by looking for their presence in the workspace.\n\n- `{language}-conventions` is the skill produced by **add_skills**.\n- `{language}-security-guidelines.md` and `{language}-test-guidelines.md` are language-specific guideline files produced by **add_guidelines**.\n- `update-activity-workflow.md` is a workflow guideline file produced by **add_guidelines** (it is not language-specific).\n- Check these independently. Do not treat the presence of one set as proof that the other set already exists.\n- **If any required guideline files for this project are missing:** Call **add_guidelines**.\n- **If `{language}-conventions` is missing for the project's language:** Call **add_skills**.\n- **If all required guideline files and `{language}-conventions` already exist:** Skip this step and proceed to step 2.\n\n### 2. Discover Available APIs\n\nCall **fetch_api** to find available APIs — always start here.\n\n- Always provide the `language` parameter using the language detected in step 1a.\n- Always provide the `key` parameter: pass the API name/key from the user's request (e.g. `\"paypal\"`, `\"twilio\"`).\n- If the user did not provide an API name/key, ask them which API they want to integrate, then call `fetch_api` with that value.\n- The tool returns only the matching API on an exact match, or the full API catalog (name, description, and `key`) when there is no exact match.\n- Identify the API that matches the user's request based on the name and description.\n- Extract the correct `key` for the user's requested API before proceeding. This key will be used for all subsequent tool calls related to that API.\n\n**If the requested API is not in the list:**\n- Inform the user that the API is not currently available in this plugin (context-matic) and stop.\n- Request guidance from user on how to proceed with the API's integration.\n\n### 3. Get Integration Guidance\n\n- Provide `ask` with: `language`, `key` (from step 2), and your `query`.\n- Break complex questions into smaller focused queries for best results:\n  - _\"How do I authenticate?\"_\n  - _\"How do I create a payment?\"_\n  - _\"What are the rate limits?\"_\n\n### 4. Look Up SDK Models and Endpoints (as needed)\n\nThese tools return definitions only — they do not call APIs or generate code.\n\n- **model_search** — look up a model/object definition.\n  - Provide: `language`, `key`, and an exact or partial case-sensitive model name as `query` (e.g. `availableBalance`, `TransactionId`).\n- **endpoint_search** — look up an endpoint method's details.\n  - Provide: `language`, `key`, and an exact or partial case-sensitive method name as `query` (e.g. `createUser`, `get_account_balance`).\n\n### 5. Record Milestones\n\nCall **update_activity** (with the appropriate `milestone`) whenever one of these is **concretely reached in code or infrastructure** — not merely mentioned or planned:\n\n| Milestone | When to pass it |\n|---|---|\n| `sdk_setup` | SDK package is installed in the project (e.g. `npm install`, `pip install`, `go get` has run and succeeded). |\n| `auth_configured` | API credentials are explicitly written into the project's runtime environment (e.g. present in a `.env` file, secrets manager, or config file) **and** referenced in actual code. |\n| `first_call_made` | First API call code written and executed |\n| `error_encountered` | Developer reports a bug, error response, or failing call |\n| `error_resolved` | Fix applied and API call confirmed working |\n\n## Checklist\n\n- [ ] Project's primary language detected (step 1a)\n- [ ] `add_guidelines` called if guideline files were missing, otherwise skipped\n- [ ] `add_skills` called if `{language}-conventions` was missing, otherwise skipped\n- [ ] `fetch_api` called with correct `language` and `key` (API name)\n- [ ] Correct `key` identified for the requested API (or user informed if not found)\n- [ ] `update_activity` called only when a milestone is concretely reached in code/infrastructure — never for questions, searches, or tool lookups\n- [ ] `update_activity` called with the appropriate `milestone` at each integration milestone\n- [ ] `ask` used for integration guidance and code samples\n- [ ] `model_search` / `endpoint_search` used as needed for SDK details\n- [ ] Project compiles after each code modification\n\n## Notes\n\n- **API not found**: If an API is missing from `fetch_api`, do not guess at SDK usage — inform the user that the API is not currently available in this plugin and stop.\n- **update_activity and fetch_api**: `fetch_api` is API discovery, not integration — do not call `update_activity` before it.","tags":["integrate","context","matic","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"capabilities":["skill","source-github","skill-integrate-context-matic","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/integrate-context-matic","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (5,873 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:14.741Z","embedding":null,"createdAt":"2026-04-18T20:36:17.109Z","updatedAt":"2026-05-18T18:52:14.741Z","lastSeenAt":"2026-05-18T18:52:14.741Z","tsv":"'1':149 '1a':155,377,759 '1b':222 '2':351,352,537 '3':526 '4':566 '5':642 'account':640 'activ':647,804,823,891,906 'actual':720 'ad':237 'add':51,120,256,271,281,319,332,760,770 'alreadi':235,306,342 'alway':93,363,366,378 'anyth':70 'api':11,21,25,50,53,55,67,74,89,117,136,140,355,358,362,385,402,407,415,425,433,447,469,485,489,500,523,584,695,726,748,781,788,796,858,863,868,880,894,896,898 'appli':103,104,746 'appropri':650,827 'ask':27,43,60,110,404,531,833 'auth':693 'authent':554 'avail':24,88,354,361,504,884 'availablebal':611 'balanc':641 'base':454 'best':549 'break':541 'bug':737 'build.gradle':201 'call':318,331,356,413,481,583,645,723,727,742,749,762,772,782,805,824,904 'capabl':92 'case':604,631 'case-sensit':603,630 'catalog':434 'check':163,223,229,289 'checklist':752 'clien':54 'client':122 'code':587,660,721,728,839,855 'code/infrastructure':814 'compil':852 'complex':542 'composer.json':207 'concret':657,811 'config':715 'configur':694 'confirm':750 'context':3,15,97,509 'context-mat':14,96,508 'convent':250,323,341,775 'correct':462,784,790 'creat':558 'createus':638 'credenti':696 'csharp':184 'csproj':182 'current':503,883 'definit':578,594 'dep':188 'depend':132 'descript':436,459 'detail':38,621,850 'detect':156,212,374,757 'develop':734 'discov':5,353 'discoveri':899 'e.g':141,392,610,637,682,706 'encount':733 'endpoint':34,572,613,618,843 'ensur':150 'env':710 'environ':705 'error':732,738,743 'exact':428,443,600,627 'execut':731 'exist':154,225,307,343 'explicit':698 'extern':73,127,135 'extract':460 'fail':741 'fetch':20,357,414,780,867,893,895 'file':179,191,268,278,312,338,711,716,765 'find':23,360 'first':722,725 'fix':745 'focus':546 'follow':77 'found':802,860 'full':432 'gemfil':204 'generat':586 'get':527,639,688 'go':198,199,687 'go.mod':197 'guess':871 'guidanc':30,514,529,837 'guidelin':151,165,226,231,267,272,277,282,311,320,337,761,764 'identifi':168,445,792 'implement':69,130,145 'independ':291 'inform':495,799,875 'infrastructur':662 'inspect':176 'instal':678,684,686 'integr':2,7,29,45,56,62,112,147,411,525,528,831,836,901 'integrate-context-mat':1 'involv':71 'java':202,203 'key':381,438,463,473,534,597,624,787,791 'knowledg':86 'languag':161,174,181,213,219,249,258,261,265,287,322,330,340,369,373,533,596,623,756,774,785 'language-specif':264,286 'limit':565 'list':494 'look':242,567,590,615 'lookup':821 'made':724 'manag':713 'match':424,429,444,449 'matic':4,16,98,510 'mcp':17,99 'mention':137,665 'mere':664 'method':619,633 'mileston':644,651,668,809,828,832 'miss':317,325,767,777,865 'model':31,570,588,606,841 'model/object':593 'modif':856 'name':435,457,607,634,789 'name/key':386,403 'need':574,847 'never':815 'note':857 'npm':683 'one':298,653 'otherwis':768,778 'packag':676 'package.json':185 'paramet':370,382 'parti':10,49,66,116 'partial':602,629 'pass':383,671 'pattern':180 'payment':560 'paypal':142,393 'php':208,209 'pip':685 'plan':667 'plugin':507,887 'pom.xml':200 'presenc':245,296 'present':707 'primari':160,172,755 'proceed':348,471,520 'produc':254,269,279 'program':173 'project':158,170,240,315,328,681,702,753,851 'proof':301 'provid':367,379,400,530,595,622 'py':195 'pyproject.toml':194 'python':196 'queri':540,547,609,636 'question':543,817 'rate':564 'rb':205 'reach':658,812 'record':643 'referenc':718 'relat':482 'reli':82 'report':735 'request':129,391,453,468,488,513,795 'requir':221,310,336 'requirements.txt':193 'resolv':744 'respons':739 'result':550 'return':421,577 'rubi':206 'run':690 'runtim':704 'sampl':840 'sdk':37,76,124,569,673,675,849,873 'sdks':26 'search':32,35,589,614,818,842,844 'secret':712 'security-guidelines.md':259 'sensit':605,632 'server':18,100 'servic':128 'set':299,305 'setup':674 'skill':106,153,167,228,233,253,257,333,771 'skill-integrate-context-matic' 'skip':344,769,779 'sln':183 'smaller':545 'source-github' 'specif':139,266,288 'start':364 'step':217,346,350,376,536,758 'stop':512,889 'subsequ':216,479 'succeed':692 'test-guidelines.md':262 'third':9,48,65,115 'third-parti':8,47,64,114 'tool':420,480,576,820 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'transactionid':612 'treat':294 'ts':190 'twilio':143,394 'typescript':187,192 'updat':646,803,822,890,905 'update-activity-workflow.md':273 'usag':874 'use':12,19,39,94,210,371,476,834,845 'user':42,59,109,389,397,451,466,497,516,798,877 'valu':418 'want':118,409 'whenev':652 'wherev':218 'whether':230 'work':751 'workflow':79,148,276 'workspac':178,248 'written':699,729","prices":[{"id":"e1074029-7e90-46a4-9d77-2bb2943fb520","listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:36:17.109Z"}],"sources":[{"listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","source":"github","sourceId":"github/awesome-copilot/integrate-context-matic","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/integrate-context-matic","isPrimary":false,"firstSeenAt":"2026-04-18T21:49:52.482Z","lastSeenAt":"2026-05-18T18:52:14.741Z"},{"listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","source":"skills_sh","sourceId":"github/awesome-copilot/integrate-context-matic","sourceUrl":"https://skills.sh/github/awesome-copilot/integrate-context-matic","isPrimary":true,"firstSeenAt":"2026-04-18T20:36:17.109Z","lastSeenAt":"2026-05-07T22:40:43.415Z"}],"details":{"listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"integrate-context-matic","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"23a2b5e3312ae565e8794bbeee14096d8b26e658","skill_md_path":"skills/integrate-context-matic/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/integrate-context-matic"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"integrate-context-matic","description":"Discovers and integrates third-party APIs using the context-matic MCP server. Uses `fetch_api` to find available API SDKs, `ask` for integration guidance, `model_search` and `endpoint_search` for SDK details. Use when the user asks to integrate a third-party API, add an API client, implement features with an external API, or work with any third-party API or SDK."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/integrate-context-matic"},"updatedAt":"2026-05-18T18:52:14.741Z"}}