Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

skills.mdx: ReadResourceDirectoryRequest does not type-check against the 2026-07-28 base schema

Open Beginner friendly
#156 0 comments 0 reactions 0 assignees View on GitHub

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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from modelcontextprotocol/ext-skills

All issues in modelcontextprotocol/ext-skills

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.