CtrlK
BlogDocsLog inGet started
Tessl Logo

ai-mcp

Host-side Model Context Protocol (MCP) client for TanStack AI: connect to external MCP servers, discover and run their 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.

60

Quality

72%

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

Low

Low-risk findings.

2 low severity findings. Worth noting, but not necessarily harmful.

Low

W011: Third-party content exposure detected (indirect prompt injection risk).

What this means

The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.

Why it was flagged

Runtime path: the required workflow calls an OUTSIDER MCP server over HTTP/SSE (public/untrusted server) and forwards that server’s tool JSON schema/prompts/resources into `chat()`/LLM context (e.g., `chat({ tools: await client.tools() })` and `client.readResource(...)`, plus `client.prompts()` → `mcpPromptToMessages`).

Report incorrect finding
Low

W012: Unverifiable external dependency detected (runtime URL that controls agent).

What this means

The skill fetches instructions or code from an external URL at runtime, and the fetched content directly controls the agent’s prompts or executes code. This dynamic dependency allows the external source to modify the agent’s behavior without any changes to the skill itself.

Why it was flagged

The skill actively connects at runtime to external MCP servers (e.g., https://mcp.example.com/mcp, https://mcp.github.com/mcp) and uses client.getPrompt / readResource to fetch prompts/resources which are converted into chat messages and thus directly control model input.

Repository
TanStack/ai
Audited
Security analysis
Snyk

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.