github / github/copilot-cli

Support MCP resources/read primitive

Open
#1,803 1 comment 11 reactions 0 assignees View on GitHub
area:mcp
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

### Describe the feature or problem you'd like to solve

MCP servers can expose data through the `resources` primitive (`resources/list`, `resources/read`). This is one of the three core MCP primitives alongside tools and prompts.

Currently, Copilot CLI only supports MCP **tools**. When an MCP tool returns a resource URI (e.g. `knowledge://domain/version/topic`), the agent has no way to read it and falls back to `web_fetch`, which fails on custom URI schemes:

```
✓ search_topics: pekko kafka consumer actor ordering sharding entity
└ Found 5 results for "pekko kafka consumer actor ordering sharding entity":

✗ Fetching web content: knowledge://hyraco/2.2.2/support/pekko
TypeError: fetch failed

✗ Fetching web content: knowledge://hyraco/2.2.2/support/kafka
TypeError: fetch failed
```

### Proposed solution

Implement MCP `resources/list` and `resources/read` support so the agent can:
1. Discover available resources from connected MCP servers
2. Read resource content by URI when tools return resource references

This would bring Copilot CLI's MCP support in line with Claude Code, which already supports all three MCP primitives.

### Additional context

- MCP spec: https://modelcontextprotocol.io/docs/concepts/resources
- The workaround for MCP server authors is to inline content in tool responses, but this increases token usage and loses the two-step search-then-read pattern that resources enable.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.