CtrlK
BlogDocsLog inGet started
Tessl Logo

ai-mcp

Host-side Model Context Protocol (MCP) for TanStack AI: connect to external MCP servers, host your own tools with createMCPServer, discover and run tools inside any adapter's chat() loop, read resources and prompts, generate TypeScript types (typed tool names/pool keys) with the bundled CLI, and manage lifecycle with close()/await using.

61

Quality

77%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./packages/ai-mcp/skills/ai-mcp/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a highly actionable API reference with complete, copy-paste-ready code for every feature, and the workflow guidance that exists (codegen, lifecycle, mistakes) is clear and well-sequenced. Its weaknesses are redundancy from repeating the same examples and close-pattern three times over, and a monolithic single-file structure with no progressive disclosure despite the content volume clearly warranting reference files.

Suggestions

Deduplicate code: show the base weather server once and show only the stdio/middleware deltas in the variants, cutting ~60 repeated lines.

Split long peripheral sections (MCP Apps client-side bridge, OAuth redirect-flow caveats, lifecycle variants) into references/ files linked one level deep, and fix the docs/mcp/apps.md pointer to a real bundle file.

Add a verification step to the Codegen CLI workflow (e.g. re-run generate when servers change and let missing keys be a compile error) to close the workflow-clarity gap.

DimensionReasoningScore

Conciseness

Prose is mostly telegraphic and documents non-obvious package facts Claude cannot know, but there is notable redundancy: the base weather-server example is repeated nearly verbatim in the HTTP and stdio hosting sections (~20 identical lines), the close-in-middleware pattern appears three times (Lifecycle, Complete server-route example, Common Mistakes), and "Mount handleMcp on GET, POST, and DELETE" is stated twice. Not 4: the repetition is more than minor trimming — several full code blocks could be collapsed or referenced.

3 / 5

Actionability

Every section ships complete, executable TypeScript with imports, realistic config objects, and exact subpath imports (e.g. '@tanstack/ai-mcp/stdio', '@tanstack/ai-mcp/server'), plus runnable CLI commands (npx @tanstack/ai-mcp generate) and wrong/correct pairs in Common Mistakes. Not 4: coverage spans all common cases — transports, both auth levels, tool policy, lifecycle variants, error classes — copy-paste ready throughout.

5 / 5

Workflow Clarity

Multi-step processes are well sequenced: Codegen CLI gives a numbered 1-2-3 workflow (create mcp.config.ts, run generate, use types), lifecycle guidance is explicit with three ordered options and a when-to-use decision table, and Common Mistakes are severity-graded with fixes. Not 5: the MCP input-request interrupt flow is split across two sections without an explicit ordered sequence or resume checkpoint, and there are no verification checkpoints (e.g. how to confirm a generated file is current). Not 3: sequence and checkpoints are largely present.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), and the body is a ~1,280-line monolith with clearly separable material inlined: MCP Apps client-side React detail, three full lifecycle code variants, and OAuth redirect-flow caveats would all fit better in one-level-deep reference files. References are also shaky — "See docs/mcp/apps.md" points at the source library, not a file in this skill's bundle. Not 4: significant content that should be split out is inline and the apps reference is not clearly signaled as external to the bundle.

3 / 5

Total

15

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, information-dense description that comprehensively names the package's concrete capabilities in third person with excellent distinctiveness. Its one real weakness is the absence of any explicit "Use when..." trigger guidance, which caps completeness and slightly weakens trigger coverage.

Suggestions

Append an explicit trigger clause, e.g. "Use when connecting a TanStack AI chat() loop to MCP servers, exposing tools as an MCP server, or generating types for MCP tool names."

Add natural trigger synonyms users would say — "MCP client", "expose tools as an MCP server", "stdio/SSE transport" — to the description.

State the server-side-only constraint in the description (e.g. "server-side only; not for browser code") since it is a key disambiguator against client-side skills.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete actions — "connect to external MCP servers", "host your own tools with createMCPServer", "discover and run tools inside any adapter's chat() loop", "read resources and prompts", "generate TypeScript types... with the bundled CLI", "manage lifecycle with close()/await using" — giving comprehensive coverage of the package's capabilities. Not 4: there are no minor gaps; every major package feature is named with its concrete API entry point.

5 / 5

Completeness

The "what" is clearly and comprehensively answered, but there is no "Use when..." clause or equivalent explicit trigger guidance anywhere in the description. Per the judging guidelines, a missing 'Use when...' clause caps completeness at 3. Not 4: the when cannot be considered even weakly implied — nothing in the text signals when to reach for this skill.

3 / 5

Trigger Term Quality

Good natural keyword coverage: "Model Context Protocol (MCP)" pairs the full name with the acronym, plus "MCP servers", "tools", "resources", "prompts", and "TypeScript types" — terms a developer would naturally say. Not 5: common phrasings like "expose/serve tools as an MCP server", "MCP client", or "stdio/SSE transport" are missing.

4 / 5

Distinctiveness Conflict Risk

"Host-side Model Context Protocol (MCP) for TanStack AI" carves out a clear niche scoped to a specific package, with concrete trigger terms (createMCPServer, chat(), the bundled CLI) that no sibling skill would share. Not 4: overlap risk with a generic tool-calling skill is avoided by explicitly scoping to MCP and naming the package's own APIs.

5 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (1283 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository
TanStack/ai
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.