skills.mdx: ReadResourceDirectoryRequest does not type-check against the 2026-07-28 base schema
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 85/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- api, documentation
Research direction
Start in specification/stable/skills.mdx and compare its request interfaces with the 2026-07-28 schema.ts definitions. Concatenate the page's TypeScript blocks and run tsc --noEmit --strict to reproduce the error. Done means the affected request interfaces follow the base schema's parameter conventions and the combined blocks compile without errors.
Written by the indexing model from the issue text.
Description
specification/stable/skills.mdx says its referenced type names are those of the base schema at 2026-07-28. Checked against that schema, one of the page's interfaces does not compile.
What fails
interface ReadResourceDirectoryRequest extends PaginatedRequest {
method: "resources/directory/read";
params: {
uri: string;
cursor?: Cursor;
};
}
At 2026-07-28, PaginatedRequest fixes params to PaginatedRequestParams, which inherits a required _meta from RequestParams. The inline object drops it:
error TS2430: Interface 'ReadResourceDirectoryRequest' incorrectly extends interface 'PaginatedRequest'.
Types of property 'params' are incompatible.
Property '_meta' is missing in type '{ uri: string; cursor?: string | undefined; }'
but required in type 'PaginatedRequestParams'.
The page already states that every request MUST carry the request metadata and that the examples omit it for brevity, so the intent is not in doubt. Only the interface disagrees with it.
Reproduction
Concatenate the page's typescript blocks, import Request, PaginatedRequest, PaginatedResult, CacheableResult, Resource and Cursor from the 2026-07-28 schema.ts, and run tsc --noEmit --strict (TypeScript 5). This is the only error.
Suggested fix
Follow the shape the base schema uses for its own requests, a named params interface:
interface ReadResourceDirectoryRequestParams extends PaginatedRequestParams {
/** URI of the directory resource to read. */
uri: string;
}
interface ReadResourceDirectoryRequest extends PaginatedRequest {
method: "resources/directory/read";
params: ReadResourceDirectoryRequestParams;
}
A related inconsistency
GetSkillRequest compiles, but it departs from the base convention in two ways. It extends Request where the base schema's concrete requests extend JSONRPCRequest, and its params is an inline { uri: string } with no _meta. The base equivalent would be:
interface GetSkillRequestParams extends RequestParams {
/** URI of the skill's SKILL.md. */
uri: string;
}
interface GetSkillRequest extends JSONRPCRequest {
method: "skills/get";
params: GetSkillRequestParams;
}
ListSkillsRequest, ListSkillsResult, GetSkillResult and ReadResourceDirectoryResult type-check as written.
- Dominant language
- MDX
- Stars
- 720
- Forks
- 59
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 7
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from modelcontextprotocol/ext-skills
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
modelcontextprotocol/ext-skills#128 ·
Maintainers usually reply within 1 day
-
enhancement SEP-2640
Difficulty 4/5 3-5 days Newbie friendliness 25/100
modelcontextprotocol/ext-skills#155 ·
Maintainers usually reply within 1 day
-
Go SDK — SEP-2640 Skills supportPossibly taken @sambhav claimed this 17 days ago. Openenhancement SEP-2640
modelcontextprotocol/ext-skills#149 · 1 assignee ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 30/100
modelcontextprotocol/ext-skills#145 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 52/100
modelcontextprotocol/ext-skills#144 ·
Maintainers usually reply within 1 day
All issues in modelcontextprotocol/ext-skills
Similar issues
-
bug needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
debpalash/VoiceStudio#2624 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
router-for-me/CLIProxyAPI#6399 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ReactionMechanismGenerator/ARC#1067 ·
Maintainers usually reply within 1 day