copilot-spaces
Use Copilot Spaces to provide project-specific context to conversations. Use this skill when users mention a "Copilot space", want to load context from a shared knowledge base, discover available spaces, or ask questions grounded in curated project documentation, code, and instructions.
By github · 4,482 installs
npx skills add github/awesome-copilot --skill copilot-spaces
Source repository · Upstream listing
Copilot Spaces
Use Copilot Spaces to bring curated, project specific context into conversations. A Space is a shared collection of repositories, files, documentation, and instructions that grounds Copilot responses in your team's actual code and knowledge.
Available Tools
MCP Tools (Read only)
Tool Purpose
mcp github list copilot spaces List all spaces accessible to the current user
mcp github get copilot space Load a space's full context by owner and name
REST API via gh api (Full CRUD)
The Spaces REST API supports creating, updating, deleting spaces, and managing collaborators. The MCP server only exposes read operations, so use gh api for writes.
User Spaces:
Method Endpoint Purpose
POST /users/{username}/copilot spaces Create a space
GET /users/{username}/copilot spaces List spaces
GET /users/{username}/copilot spaces/{number} Get a space
PUT /users/{username}/copilot spaces/{number} Update a space
DELETE /users/{username}/copilot spaces/{number} Delete a space
Organization Spaces: Same pattern under /orgs/{org}/copilot spaces/...
Collaborators: Add, list, update, and remove collaborators at .../collaborators
Scope requirements: PAT needs read:user for reads, user for writes. Add with gh auth refresh h github.com s user .
Note: This API is functional but not yet in the public REST API docs. It may require the copilot spaces api feature flag.
When to Use Spaces
User mentions "Copilot space" or asks to "load a space"
User wants answers grounded in specific project docs, code, or standards
User asks "what spaces are available?" or "find a space for X"
User needs onboarding context, architecture docs, or team specific guidance
User wants to follow a structured workflow defined in a Space (templates, checklists, multi step processes)
Workflow
1. Discover Spaces
When a user asks what spaces are available or you need to find the right space:
This returns all spaces the user can access, each with a name and owner login . Present relevant matches to the user.
To filter for a specific user's spaces, match owner login against the username (e.g., "show me my spaces").
2. Load a Space
When a user names a specific space or you've identified the right one:
This returns the space's full content: attached documentation, code context, custom instructions, and any other curated materials. Use this context to inform your responses.
3. Follow the Breadcrumbs
Space content often references external resources: GitHub issues, dashboards, repos, discussions, or other tools. Proactively fetch these using other MCP tools to gather complete context. For example:
A space references an initiative tracking issue. Use issue read to get the latest comments.
A space links to a project board. Use project tools to check current status.
A space mentions a repo's masterplan. Use get file contents to read it.
4. Answer or Execute
Once loaded, use the space content based on what it contains:
If the space contains reference material (docs, code, standards):
Answer questions about the project's architecture, patterns, or standards
Generate code that follows the team's conventions
Debug issues using project specific knowledge
If the space contains workflow instructions (templates, step by step processes):
Follow the workflow as defined, step by step
Gather data from the sources the workflow specifies
Produce output in the format the workflow defines
Show progress after each step so the user can steer
5. Manage Spaces (via gh api )
When a user wants to create, update, or delete a space, use gh api . First, find the space number from the list endpoint.
Update a space's instructions:
Update name, description, or instructions together:
Create a new space:
Attach resources (replaces entire resource list):
Delete a space:
Updatable fields: name , description , general instructions , icon type , icon color , visibility ("private"/"public"), base role ("no access"/"reader"), resources attributes
Examples
Example 1: User Asks for a Space
User : "Load the Accessibility copilot space"
Action :
1. Call mcp github get copilot space with owner "github" , name "Accessibility"
2. Use the returned context to answer questions about accessibility standards, MAS grades, compliance processes, etc.
Example 2: User Wants to Find Spaces
User : "What copilot spaces are available for our team?"
Action :
1. Call mcp github list copilot spaces
2. Filter/present spaces relevant to the user's org or interests
3. Offer to load any space they're interested in
Example 3: Context Grounded Question
User : "Using the security space, what's our policy on secret scanning?"
Action :
1. Call mcp github get copilot space with the appropriate owner and name
2. Find the relevant policy in the space content
3. Answer based on the actual internal documentation
Example 4: Space as a Workflow Engine
User : "Write my weekly update using the PM Weekly Updates space"
Action :
1. Call mcp github get copilot space to load the space. It contains a template format and step by step instructions.
2. Follow the space's workflow: pull data from attached initiative issues, gather metrics, draft each section.
3. Fetch external resources referenced by the space (tracking issues, dashboards) using other MCP tools.
4. Show the draft after each section so the user can review and fill in gaps.
5. Produce the final output in the format the space defines.
Example 5: Update Space Instructions Programmatically
User : "Update my PM Weekly Updates space to include a new writing guideline"
Action :
1. Call mcp github list copilot spaces and find the space number (e.g., 19).
2. Call mcp github get copilot space to read current instructions.
3. Modify the instructions text as requested.
4. Push the update:
Tips
Space names are case sensitive . Use the exact name from list copilot spaces .
Spaces can be owned by users or organizations. Always provide both owner and name .
Space content can be large (20KB+). If returned as a temp file, use grep or view range to find relevant sections rather than reading everything at once.
If a space isn't found, suggest listing available spaces to find the right name.
Spaces auto update as underlying repos change, so the context is always current.
Some spaces contain custom instructions that should guide your behavior (coding standards, preferred patterns, workflows). Treat these as directives, not suggestions.
Write operations ( gh api for create/update/delete) require the user PAT scope. If you get a 404 on write operations, run gh auth refresh h github.com s user .
Resource updates replace the entire array . To add a resource, include all existing resources plus the new one. To remove one, include { "id": 123, " destroy": true } in the array.