typeprobe MCP server
io.github.clockblocker/typeprobe·v4.0.0·1 starsTypeScript inferred types, completions and type errors for AI coding agents
1 stars334 downloads/wk
Reviews
Write oneNobody has reviewed typeprobe yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
typeprobe tools (6)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
annotationsType annotations in one file that TypeScript would infer anyway (redundant) or that are wider than the inferred type (widening, often an intended contract). Use when reviewing or cleaning up types.
batch_hoverUp to … hovers in one call, across files. Items: {name, line?}, {line, text, occurrence?}, or {line, column}; failures are per item.
completionsThe completions TypeScript offers at a cursor, including string-literal union members. Use to find valid values for an argument, key, or import before writing it. Returns the top ….
diagnosticsCheck one file for type errors without running tsc on the whole project. Call it on each file you edit; the edit is done when none reports an error.
hoverThe type at a token on a line, like an editor hover; generic calls show their instantiated types. Use when hover_by_name can't name the token: callback parameters, expressions, repeated names.
hover_by_nameThe type TypeScript infers for a named variable, function, parameter, property, or type. Use before writing an annotation, when unsure what a generic or call resolves to, or instead of reading .d.ts files.
Public scan report
scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it
- Code scan23 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How typeprobe compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Tools
- 6
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,688 servers
- Downloads a week
- 334
- more than 82% of 12,191 servers with a package
What its tools let an agent do: 6 read
Install typeprobe in Claude Code, Cursor or VS Code
Runs npx -y typeprobe on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add typeprobe -- npx -y typeprobe
What the publisher says
From the typeprobe repository's README, as published. We do not edit it. Read it on GitHub
typeprobe
typeprobe asks the TypeScript compiler what it infers (types, completions, type errors) so that AI coding agents and tests don't have to guess. It comes as:
- an MCP server for coding agents (Claude Code, Codex, Cursor, VS Code, Gemini CLI, any stdio client),
- typeprobe/testing, which returns inferred types as strings for snapshot tests,
- a CLI and a synchronous library API.
typeprobe was called prinfer until 4.0.0. See Migrating from prinfer.
Quick start
Give your agent the compiler:
npx -y typeprobe setup claude # or codex, cursor, vscode, gemini; see InstallThe agent can now call hoverbyname(file: "src/utils.ts", name: "names") and get Type: string[] back, or diagnostics(file) after an edit.
Lock the types your API infers in a test (Vitest, Jest, Bun, or any runner with snapshots):
import { expect, test } from "vitest"; // or "bun:test"
import { inferredType } from "typeprobe/testing";
import { groupBy, type User } from "../src/users";
const users: User[] = [{ name: "Ada", role: "admin" }];
const byRole = groupBy(users, (user) => user.role);
test("groupBy keys the result by the callback's return type", () => {
expect(inferredType(import.meta.url, { name: "byRole" }))
.toMatchInlineSnapshot(`"Record<Role, User[]>"`);
});Write the matcher empty (toMatchInlineSnapshot()) and the runner fills it in. A refactor that changes the type fails the test.
Install
Every command runs through npx, so nothing needs installing first. After npm i -g typeprobe, drop the npx -y prefix: setup then registers the typeprobe-mcp binary, which skips npx's package check on each launch.
Claude Code. The plugin bundles the MCP server and a skill that tells Claude when to use it:
/plugin marketplace add clockblocker/typeprobe
/plugin install typeprobe@typeprobeOther clients, or Claude Code without the plugin:
Any other MCP client: typeprobe is a stdio server started with npx -y typeprobe mcp.
{
"mcpServers": {
"typeprobe": { "command": "npx", "args": ["-y", "typeprobe", "mcp"] }
}
}It is also listed in the MCP Registry as io.github.clockblocker/typeprobe and on Smithery.
Setup options:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
typeprobe: common questions
- Is typeprobe MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the typeprobe safety report
- How do I install typeprobe?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does typeprobe need an API key?
- No secret keys are declared. It reads 2 settings from the environment.
- Is typeprobe maintained?
- The last commit was 25 days ago (2026-10-10). The latest release is v4.0.0.
- How does typeprobe compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); tools 6 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.