Hyperterse
The declarative framework for performant MCP servers.
Website
•
Documentation
•
Quick Start
•
Examples
•
GitHub
Hyperterse turns tool configs into callable tools, with:
- filesystem-based tool discovery,
- pluggable adapters (Postgres, MySQL, MongoDB, Redis),
- optional scripts for transforms and handlers,
- MCP runtime exposure over Streamable HTTP.
What Hyperterse is
- Tool-first MCP framework: each tool config compiles into a tool.
- Declarative runtime: root config + adapter files + tool files.
- Extensible execution pipeline: auth -> input transform -> execute -> output transform.
- Embedded scripting: script hooks run in a sandboxed runtime; bundled at compile time.
Quick start
Install
curl -fsSL https://hyperterse.com/install | bash
Initialize
hyperterse init
This scaffolds:
.hyperterseapp/adapters/my-database.terseapp/tools/hello-world/config.terseapp/tools/hello-world/user-data-mapper.ts
Run
hyperterse start
With hot reload:
hyperterse start --watch
Test
curl http://localhost:8080/heartbeat
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
Project structure
my-project/
.hyperterse
app/
adapters/
main-db.terse
tools/
get-user/
config.terse
input.ts
output.ts
get-weather/
config.terse
handler.ts
Tool examples
DB-backed tool
description: "Get user by id"
use: main-db
statement: |
SELECT id, name, email
FROM users
WHERE id = {{ inputs.user_id }}
inputs:
user_id:
type: int
Script-backed tool
description: "Get weather"
handler: "./weather-handler.ts"
CLI commands
start- run runtime from configserve- run from a compiled artifactbuild- produce a deployable artifactvalidate- validate config and tool scriptsinit- scaffold starter projectupgrade- upgrade installed binarycompletion- shell completion helper
Build and deploy
hyperterse validate
hyperterse build -o dist
hyperterse serve dist/
The dist/ output includes everything needed to run in production.
Configuration highlights
- root config:
.hyperterse - adapter files:
app/adapters/*.terse - tool files:
app/tools/*/config.terse
Supported primitive types:
stringintfloatbooleandatetime
Security note
Hyperterse validates typed inputs, but statement placeholder substitution ({{ inputs.x }}) is raw string replacement. Use strict tool input constraints and safe query patterns for production.
Contributing
- Fork the repo
- Create a feature branch
- Add or update tests
- Run validation/lint/test locally
- Open a PR
See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
The declarative framework for performant MCP servers.
Website
•
GitHub
•
Documentation