-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Labels
bugSomething isn't workingSomething isn't workingserver-everythingReference implementation for the Everything MCP server - src/everythingReference implementation for the Everything MCP server - src/everything
Description
Describe the bug
The everything server's resource indexing is counterintuitive. While the array index starts at 0, the resource numbering in URIs starts at 1, which leads to confusing behavior where:
- Resource at index 0 is accessed via URI "test://static/resource/1"
- Resource at index 1 is accessed via URI "test://static/resource/2"
etc.
From the server code:
const ALL_RESOURCES: Resource[] = Array.from({ length: 100 }, (_, i) => ({
const url = `test://static/resource/${i + 1}`;
if (i % 2 === 0) {
// index 0 (first resource) is text
// index 2 (third resource) is text
// etc.
This means even-indexed resources (0,2,4...) are text, but they map to odd-numbered URIs (1,3,5...).
To Reproduce
Make a ListResources request, then try to read the first text resource:
- List resources:
{
"jsonrpc": "2.0",
"id": 1,
"method": "resources/list"
}
- Get first text resource (index 0):
{
"jsonrpc": "2.0",
"id": 2,
"method": "resources/read",
"params": {
"uri": "test://static/resource/1"
}
}
Expected behavior
Either:
- Align the indexing so resource numbers in URIs match array indices (preferred)
- Or document this behavior clearly to prevent confusion
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingserver-everythingReference implementation for the Everything MCP server - src/everythingReference implementation for the Everything MCP server - src/everything