Provider Packages with Copilot: Quick Reference
One page for the contributor workflow in SETUP_GUIDE.md.
cd python/examples/mcp && uv sync && uv run python src/server_http.py # port 3101curl -s http://localhost:3101/health.vscode/mcp.json:
{ "servers": { "matimo-python-mcp-server": { "type": "http", "url": "http://localhost:3101/mcp" } } }In Copilot Chat, choose Matimo Tool Creator and describe the provider and its API docs.
MCP Tools the Agent Uses
Section titled “MCP Tools the Agent Uses”| Tool | Input | Asks you first? |
|---|---|---|
matimo_validate_tool |
yaml_content |
No |
matimo_validate_skill |
name, skills_dir |
No |
matimo_list_skills, matimo_get_skill |
name |
No |
web |
URL | No |
search, read |
query, directory / filePath |
Yes |
execute |
command, optional args, cwd, timeout, shell |
Yes, and always when shell is set |
edit |
filePath, operation, content |
Yes |
matimo_create_skill |
name, content, target_dir |
Yes |
matimo_reload_tools |
n/a | Yes |
matimo_create_tool and matimo_approve_tool are for agents creating their own runtime tools, not for provider packages.
Where Files Go
Section titled “Where Files Go”typescript/packages/<provider>/├── package.json README.md definition.yaml (OAuth2 only)├── tools/<tool>/definition.yaml (+ <tool>.ts for function tools)├── skills/<provider>/SKILL.md└── test/unit/ test/integration/
python/packages/<provider>/├── pyproject.toml README.md├── src/matimo_<provider>/tools/<tool>/definition.yaml (+ <tool>.py for function tools)└── tests/unit/ tests/integration/
typescript/examples/tools/<provider>/ factory, decorator, langchain, with-approvalpython/examples/{native,langchain,crewai}/<provider>/HTTP tool YAML is identical in both SDKs.
Tool YAML Essentials
Section titled “Tool YAML Essentials”name: provider_action # snake_case, uniquedescription: From the API docsversion: '1.0.0' # leave status unsetparameters: item_id: { type: string, required: true, description: Item ID }execution: type: http method: GET url: 'https://api.provider.com/v1/items/{item_id}' headers: Authorization: 'Bearer {PROVIDER_API_KEY}' # MATIMO_PROVIDER_API_KEY or PROVIDER_API_KEY timeout: 15000requires_approval: true # required for DELETE / destructive callsChecks
Section titled “Checks”cd typescript && pnpm validate-tools && pnpm lint && pnpm test -- packages/<provider>cd python && uv run ruff check packages/<provider> && uv run pytest packages/<provider>Quick Fixes
Section titled “Quick Fixes”| Problem | Fix |
|---|---|
| Port in use | MATIMO_SERVER_PORT=3102 |
| No tools in VS Code | URL must end in /mcp; check /health |
| Agent can’t reach a tool | Server name must be matimo-python-mcp-server |
| Approval error instead of a prompt | Use a client with MCP elicitation support |
| New tool not visible | Restart the server |
| Tool loads in Python only | Remove status: stable |