typesafe-mcpBLOCK
MCP server for TypeSafe AI's Jev: typed yes/no, choice and score answers with act / review / abstain gating.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Deterministic decisions for AI agents — powered by TypeSafe AI's Jev.
[](https://www.npmjs.com/package/typesafe-mcp) [](https://github.com/MarkChu-git/typesafe-mcp/actions/workflows/ci.yml) [](LICENSE) [](https://bun.sh)
npm · Documentation · Issues · Releases
An MCP server that wraps Jev, TypeSafe AI's System One decision model, so any agent can ask typed questions and get compact, auditable answers back — the answer, how certain Jev is, and a threshold-gated act / review / abstain verdict. No generated text, no vibes, and as few tokens of the agent's context as possible.
bunx typesafe-mcp # stdio server — add to any MCP host config, done
flowchart LR A[Agent] -->|jev_ask| M[typesafe-mcp] M -->|state + typed questions| J[TypeSafe Jev API] J --> M M -->|answer · certainty · decision| A
- Jev — TypeSafe AI's hosted decision model (
jev-latest/jev-1.13.0). Evaluates astateplus typed questions (Noul / Choice / Score) and returns structured answers. It does not generate text, code, or explanations. - TypeSafe — the company and API (
api.typesafe.ai/v1/systemone) plus official JS/Python SDKs. - This server — a type-safe MCP wrapper.
decisionis computed in code by this server, never Jev's own opinion about whether you may proceed.
Install
Add to any MCP host config — Cursor, Claude Desktop, Claude Code, Windsurf,
246206ceebd6OBSERVED · 2026-10-13Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add typesafe-mcp --env GH_TOKEN=${GH_TOKEN} --env GITHUB_TOKEN=${GITHUB_TOKEN} --env TYPESAFE_API_KEY=${TYPESAFE_API_KEY} -- npx -y [email protected]{
"mcpServers": {
"typesafe-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"GH_TOKEN": "${GH_TOKEN}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"TYPESAFE_API_KEY": "${TYPESAFE_API_KEY}"
}
}
}
}Exposed tools (5)
5 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
jev_ask | read | |
jev_check | read | |
jev_classify | read | |
jev_models | read | |
jev_score | read |
Trust audit
BLOCKgrade F · trust 54/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (5 observation(s))
- Network
- none-observed
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
exec(cmd: readonly string[], env: Record<string, string>): Promise<{the `gf ... auth login`** (never tell the user to run them). Use the exact
both the install and the login. **Never tell the user to run a `gf` command.** The
the `gf ... auth login`** (never tell the user to run them). Use the exact
both the install and the login. **Never tell the user to run a `gf` command.** The
the `gf ... auth login`** (never tell the user to run them). Use the exact
```mermaid
```
```mermaid
```
```mermaid
writeFileSync(join(root, "certs", "server.pem"), "-----BEGIN PRIVATE KEY-----");
writeFileSync(join(root, "id_ed25519"), "-----BEGIN OPENSSH PRIVATE KEY-----");
.gitleaks.toml
.gitmessage
.oxlintrc.json
.openspec.yaml
.openspec.yaml
writeFileSync(join(root, "id_ed25519"), "-----BEGIN OPENSSH PRIVATE KEY-----");
expect(await selectFiles(["certs/*", "id_ed25519"], [root])).toEqual({skipped: { "certs/server.pem": "private key or keystore", id_ed25519: "private key or keystore" },import { redact } from "../../src/errors.ts";import { META_KEY } from "../../src/result.ts";import { setF1 } from "../../verifiers.ts";import { weightedCost } from "../../verifiers.ts";Gates applied: instruction_override, no_behavioural_pass.
246206ceebd6full audit observations/trust-audit/mcp-server/markchu-git__typesafe-mcp.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-13 | 246206ceebd6 | BLOCK | F | 54 | first audit |
Questions
What is the typesafe-mcp MCP server?
MCP server for TypeSafe AI's Jev: typed yes/no, choice and score answers with act / review / abstain gating.
What tools does typesafe-mcp expose?
5 in total: 5 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is typesafe-mcp safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (54/100) and found 11 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does typesafe-mcp need?
It reads GH_TOKEN, GITHUB_TOKEN and TYPESAFE_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does typesafe-mcp run?
It speaks streamable-http, so it runs as a service you connect to over the network. It is published on npm as typesafe-mcp at 0.3.0.
How current is this page?
The grade is for one exact copy of the source (246206ceebd6), read on 2026-10-13. The repository is watched and re-audited when it changes.