itsmostafa/typesafe-mcp on GitHub
- Stars
- 289
- Forks
- 31
- Language
- Go
- License
- MIT
- Last push
- 23 Sep 2026
Read from GitHub on . Counts change daily.
Typesafe-mcp, run as a binary called evaluate, connects Claude Code, Claude Desktop, Codex and pi to Jev, and to open models such as Laya when pointed at a local server. Instead of asking an LLM a question and parsing the paragraph that comes back, the calling agent names the question and the possible answers, and gets back a probability for each answer in a fixed format it can compare against a threshold. It supports all three question types: noul (yes or no), choice (pick one option) and score (rate on a scale). The README’s example asks, for one support ticket, whether it is urgent and which team should own it, in a single call. An items field runs the same questions over up to 500 records at once.
It ships as a single static Go binary, so it needs no Node or Python runtime. evaluate setup mcp finds Claude Code, Claude Desktop and Codex on a machine and registers the server with each one; pi has its own setup command. It works with a TypeSafe key, an OpenRouter key, or a self-hosted endpoint. The server also sends usage guidance to the connected agent on how to write good questions: narrow judgments, structured state, and evidence rather than conclusions.
How it uses Jev
switch {
case os.Getenv("TYPESAFE_API_KEY") != "":
base := cmp.Or(os.Getenv("TYPESAFE_BASE_URL"), "https://api.typesafe.ai")
u, err := url.Parse(base)
if err != nil {
return nil, fmt.Errorf("TYPESAFE_BASE_URL: %w", err)
}
// Parse accepts a bare host as a relative URL, so the scheme and host
// carry the check.
if (u.Scheme != "http" && u.Scheme != "https") || u.Host == "" {
return nil, fmt.Errorf("TYPESAFE_BASE_URL must be an absolute http(s) URL, got %q", base)
}
return &Client{
URL: u.JoinPath("v1", "systemone").String(),
APIKey: os.Getenv("TYPESAFE_API_KEY"),

