Skip to main content
Glama
keysersoft

Jev MCP Server

Official
README.md
# Jev MCP Server

**Connect Jev to Claude, ChatGPT and Copilot: yes/no checks, classifications and scores, with the probability behind every answer as MCP tools.** Powered by [AnythingMCP](https://github.com/HelpCode-ai/anythingmcp).

Jev MCP Server gives Claude, ChatGPT, Copilot and Cursor 6 tools for Jev: yes/no checks, classifications and scores, with the probability behind every answer. Every tool only reads. It runs on AnythingMCP: one click on AnythingMCP Cloud, or self-hosted with Docker. Credentials are stored encrypted and every call is audited.

**Last verified:** 2026-09-27 against the live TypeSafe API (jev-1.13.0) (every tool called through a local AnythingMCP over MCP, 27 direct API cases incl. error paths, and Claude Code triaging English and German tickets through the connector).  
**Adapter synced:** <!-- synced -->2026-09-27

Maintained by [@keysersoft](https://github.com/keysersoft), an AnythingMCP maintainer. Built on [AnythingMCP](https://github.com/HelpCode-ai/anythingmcp) by helpcode.ai.

## Quick start (AnythingMCP Cloud)

1. Sign in at [cloud.anythingmcp.com](https://cloud.anythingmcp.com) and open the [install link](https://cloud.anythingmcp.com/connectors/store?install=jev).
2. Enter `TYPESAFE_API_KEY` (see [Authentication](#authentication)).
3. Copy the URL of your MCP server under **MCP Servers** and add it to your AI client ([below](#connect-claude-chatgpt-copilot-or-cursor)).

AnythingMCP Cloud is the same open-source code, operated by helpcode.ai in Frankfurt, Germany.

## Self-hosted (Docker)

Needs Docker 24+, openssl and Node 18+.

```bash
git clone https://github.com/keysersoft/jev-mcp-server.git
cd jev-mcp-server
./scripts/install.sh
```

`install.sh` writes `.env` with fresh secrets, starts AnythingMCP, creates the first admin, installs the connector if `TYPESAFE_API_KEY` are set in `.env` and creates an MCP API key. Without credentials it prints the install link instead: `http://localhost:3000/connectors/store?install=jev`. Then check the whole chain:

```bash
npm install && node scripts/smoke.mjs
```

## Connect Claude, ChatGPT, Copilot or Cursor

- **Claude (claude.ai, Desktop, mobile):** *Customize → Connectors → Add custom connector*, paste your MCP server URL and sign in. Claude connects from Anthropic's cloud, so the URL must be public HTTPS: your AnythingMCP Cloud URL, or your own instance behind TLS.
- **Claude Code:**

  ```bash
  claude mcp add --transport http jev-mcp-server http://localhost:4000/mcp --header "X-API-Key: <MCP_API_KEY>"
  ```
- **Cursor** (`.cursor/mcp.json`) and **VS Code / GitHub Copilot** (`.vscode/mcp.json`, key `servers` instead of `mcpServers`, plus `"type": "http"`):

  ```json
  { "mcpServers": { "jev-mcp-server": { "url": "http://localhost:4000/mcp", "headers": { "X-API-Key": "<MCP_API_KEY>" } } } }
  ```
- **ChatGPT:** add the public HTTPS URL as a connector (app) in ChatGPT's settings. A `localhost` URL does not work there.

## Tools

6 tools, generated from [`adapter/jev.json`](adapter/jev.json). **read** tools cannot change anything in the source system.

<!-- tools:start (generated from adapter/*.json, do not edit) -->
| Tool | What it does | Access |
|---|---|---|
| `jev_playbook` | START HERE: returns, with NO API call, how to use Jev well: which question type to pick, how to structure state, how to write the question, how to read… | read |
| `jev_yes_no` | Ask Jev ONE yes/no question about some evidence. | read |
| `jev_classify` | Ask Jev to pick ONE option from a set you define (routing, labelling, intent, triage). | read |
| `jev_rate` | Ask Jev to place the evidence on an ordered scale you define (severity, lead fit, quality, sentiment). | read |
| `jev_ask` | Full Jev API: ask SEVERAL typed questions about the same state in one call (answered in parallel, state billed once). | read |
| `jev_list_models` | List the Jev model names your API key can use in the `model` field (aliases such as jev-latest and jev-preview, with release dates). | read |
<!-- tools:end -->

## Example prompts

- Use Jev to decide which of these support tickets are urgent, and show the probability for each.
- Classify each ticket below into billing, technical, sales or none with Jev, and list the ones where confidence is below 0.6.
- Rate these five leads from 0 (no fit) to 3 (ideal customer) with Jev against the profile below.
- Ask Jev whether this reply answers every question in the customer's email before I send it.
- Ask Jev whether these two supplier records describe the same company.
- Which of these 20 emails ask for a refund? Use Jev and give me only the ones above 0.8.

More in [examples/prompts.md](examples/prompts.md).

## Authentication

The connector needs one value:

| Variable | Where to find it |
|---|---|
| `TYPESAFE_API_KEY` | [console.typesafe.ai](https://console.typesafe.ai) → create an API key |

The key is sent as `Authorization: Bearer <key>` to `https://api.typesafe.ai`. At install, AnythingMCP checks it with a free `GET /v1/models` call and then stores it encrypted.

## Security

- **Read or write is your choice.** All 6 tools only read. Assign the connector to an MCP server whose role whitelists only the tools you want, and the rest are invisible to that client.
- **Credentials** are encrypted with AES-256-GCM and never shown to the model.
- **Response mapping** drops or reshapes fields per tool before they reach the model, e.g. bank details or personal data.
- **Audit log:** every call is recorded with input, output, duration and status, in your own database when self-hosted.
- **SSO, RBAC and SCIM** are included in the self-hosted build.

## FAQ

### What is Jev?
Jev is the first System One model from TypeSafe. It does not generate text: you pass evidence (the `state`) and typed questions, and it answers each one with a yes/no probability, one option out of a set you define, or a score on ordered levels, with the probabilities behind the answer. In our tests a call took 220 to 430 ms.

### How do I use Jev in Claude or ChatGPT?
Install the Jev connector on AnythingMCP with your TypeSafe API key, then add the AnythingMCP server URL to Claude as a custom connector or to ChatGPT as a developer-mode app. Both sign in with OAuth, so nothing has to run on your computer. Claude Code, Cursor and other clients take the same URL with an API key header.

### Which tools does the connector have?
`jev_yes_no`, `jev_classify` and `jev_rate` ask one question each with simple parameters; `jev_ask` sends several questions of any type about the same evidence in one call; `jev_list_models` lists the models your key can use; `jev_playbook` explains to the model how to phrase questions and read the answers, without calling the API.

### What does it cost?
TypeSafe bills Jev per input token, about $0.042 per million, and output is free. A call with three questions about a short support ticket used about 500 tokens. AnythingMCP itself is free when self-hosted.

### Can a team share one TypeSafe key?
Yes. The key is stored once, encrypted, on the AnythingMCP server. People connect to the server with their own login, never see the key, and every call is written to the audit log.

### Does Jev understand languages other than English?
It handles them. German and Italian tickets came back correct and confident in our tests; English is where TypeSafe reports the best accuracy, so watch the confidence values for other languages.

## Troubleshooting

| Problem | Fix |
|---|---|
| `401` / `403` from the vendor | The credentials are wrong or lack rights. Re-enter them on the connector page; the import runs a test call and shows the result. |
| Tools missing in the AI client | The connector is not assigned to the MCP server the client uses. Check **MCP Servers**, then run `node scripts/smoke.mjs`. |
| The host is on your internal network | Self-host AnythingMCP on that network and add the hostname to `SSRF_ALLOWED_HOSTS`, or the outbound guard blocks the call. |
| Works locally, fails on AnythingMCP Cloud | The system must be reachable from the internet with a valid TLS certificate. |
| Symptom | Cause and fix |
| `401` on every call | The API key is wrong or was revoked. Create a new one at console.typesafe.ai and update `TYPESAFE_API_KEY` on the connector. |
| `400 Invalid request.` | A question has a type other than `noul`, `choice` or `score` (there is no `bool`), or the request carries a field Jev does not know. The tool result includes a hint that lists the valid shapes. |
| `422` naming `score.criteria` | Score levels must be an array, lowest first, not an object. |
| `400 Too many score levels` / `Too many choices` | A score takes at most 10 levels and a choice at most 255 options. |
| `429` or `529` | TypeSafe's rate limit or a temporary overload. The connector retries with backoff; spread large batches over time. |
| A yes/no answer near 0.5 | Jev is unsure, not saying "medium". Ask a narrower question about the specific evidence, or pass more context in `state`. |

## Related

- [openapi-to-mcp](https://github.com/HelpCode-ai/openapi-to-mcp): OpenAPI to MCP: turn any OpenAPI/Swagger or REST API into an MCP server for Claude & ChatGPT. Every endpoint a tool, no code.
- [erp-mcp-server](https://github.com/HelpCode-ai/erp-mcp-server): ERP MCP server: connect 16 ERPs (SAP, Odoo, JTL-Wawi, Xentral, weclapp, ERPNext…) to Claude & ChatGPT. Self-hosted or cloud.
- [AnythingMCP](https://github.com/HelpCode-ai/anythingmcp): the open-source MCP server and gateway this repository is built on.

## License

AGPL-3.0-only. The adapter definition in `adapter/` comes from AnythingMCP (AGPL-3.0).