Sema MCP server
com.sema-lang/sema·v2.0.0·58 starsMCP tools for Sema — eval, compile, build, format, and docs for a Lisp with LLM primitives.
58 stars
Reviews
Write oneNobody has reviewed Sema yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Sema tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.10 · 2026-10-29 · same rubric, same numbers if you re-run it
- –Code scanpackage could not be scannedn/a
- –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 1 days ago15/15
- Maintainer identitynamespace and repository owner differ4/10
How Sema compares
Against every graded Productivity MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 78/100
- higher than 50% of 1,301 Productivity servers
- GitHub stars
- 58
- more than 90% of 855 Productivity servers
Release history: 3 versions in the registry since 2026-08-31, latest 2026-10-28, typically one every 39 days.
Install Sema in Claude Code, Cursor or VS Code
The registry entry has no remote endpoint or installable package.
What the publisher says
From the Sema repository's README, as published. We do not edit it. Read it on GitHub
Sema
A Lisp where LLM agents are language primitives, not an SDK — compiled to a fast bytecode VM, shipped as a single binary.
Docs · Playground · For Agents · Examples · Issues
Stop rewriting the agent loop. Every LLM script grows the same scaffolding — retries, caching, cost caps, rate limits, tool dispatch, conversation state. Sema makes that scaffolding the runtime: your script stays the size of its idea, ships as a single binary, and your coding agent already speaks the language.
Sema is a Scheme-like Lisp where prompts are s-expressions, conversations are persistent data structures, and LLM calls are just another form of evaluation — with Clojure-style keywords (:foo), map literals ({:key val}), and vector literals ([1 2 3]).
What It Looks Like
A coding agent with file tools, safety checks, and budget tracking — in ~40 lines:
;; Define tools the LLM can call
(deftool read-file
"Read a file's contents"
{:path {:type :string :description "File path"}}
(lambda (path)
(if (file/exists? path) (file/read path) "File not found")))
(deftool edit-file
"Replace text in a file"
{:path {:type :string} :old {:type :string} :new {:type :string}}
(lambda (path old new)
(file/write path (string/replace (file/read path) old new))
"Done"))
(deftool run-command
"Run a shell command"
{:command {:type :string :description "Shell command to run"}}
(lambda (command) (:stdout (shell "sh" "-c" command))))
;; Create an agent with tools, system prompt, and spending limit
(defagent coder
{:system (format "You are a coding assistant. Working directory: ~a" (sys/cwd))
:tools [read-file edit-file run-command]
:max-turns 20}) ; no :model → uses the configured default provider
;; Run it — budget is scoped, automatically restored after the block
(llm/with-budget {:max-cost-usd 0.50} (lambda ()
(define result (agent/run coder "Add error handling to src/main.rs"))
(println (:response result))
(println (format "Cost: $~a" (:spent (llm/budget-remaining))))))Key Features
;; Simple completion
(llm/complete "Explain monads in one sentence")
;; Structured data extraction — returns a map, not a string
(llm/extract
{:vendor {:type :string} :amount {:type :number} :date {:type :string}}
"Bought coffee for $4.50 at Blue Bottle on Jan 15")
;; => {:amount 4.5 :date "2025-01-15" :vendor "Blue Bottle"}
;; Classification
(llm/classify (list :positive :negative :neutral) "This product is amazing!")
;; => :positive
;; Multi-turn conversations as immutable data
(define conv (conversation/new {:model "claude-haiku-4-5-20251001"}))
(define conv (conversation/say conv "The secret number is 7"))
(define conv (conversation/say conv "What's the secret number?"))
(conversation/last-reply conv) ;; => "The secret number is 7."
;; Streaming
(llm/stream "Tell me a story" {:max-tokens 500})
;; Batch — all prompts sent concurrently
(llm/batch (list "Translate 'hello' to French"
"Translate 'hello' to Spanish"
"Translate 'hello' to German"))Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Sema: common questions
- Is Sema MCP server safe?
- Mostly: it is graded B (78/100). Read the Sema safety report
- Does Sema need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Sema maintained?
- The last commit was 8 days ago (2026-10-28). The latest release is v2.0.0.
- What can I use instead of Sema?
- Servers from other publishers that do the same job: Context7 MCP server, Svelte MCP server and SvGrid MCP server.
- How does Sema compare with other Productivity MCP servers?
- safety score 78/100 (higher than 50% of 1,301 Productivity servers); github stars 58 (more than 90% of 855 Productivity servers). Full comparison.
Alternatives to Sema
Same job from other publishers: the closest match first, then the best rated.
Context7Up-to-date docs for AI agentsnot reviewedWidely usedA- Svelte MCPThe official Svelte MCP server providing docs and autofixing tools for Svelte developmentnot reviewedWidely usedA
SvGridChecks AI-written SvGrid code against the real API, plus version-pinned Svelte 5 grid docs.not reviewedEstablishedA- Coolify46 optimized tools for managing Coolify infrastructure, diagnostics, and docs searchnot reviewedEstablishedB
- Agent-Native ContentOpen-source Obsidian for MDX - edit local docs with agent assistancenot reviewedEstablishedA