Educational demonstration scripts for the GitHub Copilot SDK, showcasing basic chat, agents with tools, streaming responses, and remote server mode
This is a GitHub Copilot SDK demo repository, not an MCP server. It contains demo scripts that use the Copilot SDK as a client library, not tool definitions exposed as an MCP server. The four 'tools' listed (get_utc_date, get_youtube_feed, list_available_models, list_active_sessions) are inferred from code comments and context, not from explicit MCP tool registration. No tool definitions, schemas, or proper parameter documentation exist in the source. The code shows Copilot SDK usage patterns (creating sessions, sending prompts, handling streaming responses) but does NOT implement an MCP server or define tools that would be exposed to agents. Descriptions are Spanish-language one-liners; input schemas show empty objects or minimal properties without descriptions; no output schemas are documented; error handling is absent.
Devuelve la fecha actual en formato ISO (UTC).
Obtiene el feed RSS del canal de YouTube configurado.
Lista todas las sesiones activas en el cliente Copilot con información sobre el resumen de cada sesión.
Lista todos los modelos disponibles en el cliente Copilot con sus características, límites e información de billing.
No explicit MCP tool registration visible. Tools are inferred from comments, not declared via registerTool() or equivalent MCP mechanism. Tool definitions must be registered with the MCP server framework.
Input schemas are empty objects {} or minimal with no parameter descriptions. Rules require every parameter to have a description explaining what it controls. E.g., 'limit' in get_youtube_feed has no description of units (count? bytes? minutes?), expected range, or behavior when omitted.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields if they do not know what the tool returns. E.g., does list_available_models return an array of objects with fields like [name, max_tokens, cost_per_1k_tokens]? Unknown.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 8 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 20 | - | v1 |
Descriptions are in Spanish and extremely brief (under 20 chars in English translation). Cannot exceed rubric threshold for description score. E.g., 'Devuelve la fecha actual en formato ISO (UTC)' is 45 chars in Spanish but lacks WHEN to use it, WHAT format exactly, and ANY prerequisites.
No error handling guidance. If get_youtube_feed fails (network error, channel not found, API disabled), no tool tells the LLM what to do next, whether to retry, or how to recover. Baseline rubric requires error responses to guide LLM action.
No pagination support for list_* tools. list_available_models and list_active_sessions lack limit, offset/cursor, and total_count. If hundreds of models exist, returning all exhausts context window. Rubric baseline requires pagination for list tools.
No composition chain support. If get_youtube_feed returns video IDs, downstream tools must accept those IDs to enable chaining (e.g., fetch video metadata, add to playlist). No evidence such tools exist or can chain output from get_youtube_feed.