{"id":"2ada7930-f20f-4ccc-96a4-7464b345c7d3","slug":"hyperterse","kind":"mcp","name":"hyperterse","summary":"The agentic server framework.","owner":"hyperterse","repoUrl":"https://github.com/hyperterse/hyperterse","license":"Apache-2.0","licenseTier":"permissive","trust":"community","stars":84,"match":null,"fewStars":false,"format":"mcp","createdAt":null,"addedAt":"2026-10-14T03:45:08.789Z","logoUrl":"https://avatars.githubusercontent.com/u/251845693?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["databases","cloud-infra"],"tags":["agentic-ai","agents","ai","api","database","mongodb","mysql","postgres"],"runtime":"go","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-14T04:17:09.583Z","sample":false,"url":"https://conduits.dev/tools/hyperterse","language":"Go","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<!-- Start of - Dont change this block -->\n<div align=\"center\">\n  <picture>\n    <img alt=\"Hyperterse — The agentic server framework.\" src=\"docs/assets/og.png\" />\n  </picture>\n</div>\n<br />\n<div align=\"center\">\n  <h1>Hyperterse</h1>\n</div>\n<p align=\"center\">\n  <strong>The agentic server framework.</strong><br />\n  <a href=\"https://hyperterse.com\">Website</a>\n  •\n  <a href=\"https://docs.hyperterse.com\">Documentation</a>\n  •\n  <a href=\"#quick-start\">Quick Start</a>\n  •\n  <a href=\"#tool-examples\">Examples</a>\n  •\n  <a href=\"https://github.com/hyperterse/hyperterse\">GitHub</a>\n</p>\n\n---\n\n<!-- End of - Dont change this block -->\n\n**Hyperterse** is an **agentic server framework**: one build ships **agents** (A2A), **tools** (MCP), **prompts**, **resources**, database adapters, auth, caching, and observability from a single process. You declare surfaces in config; the compiler validates and bundles them. Clients use [MCP](https://modelcontextprotocol.io/) Streamable HTTP at `/mcp` for tools, prompts, and resources; [A2A](https://github.com/a2aproject/a2a-go)-style agent routes live at `/agent/{name}` when you define agents.\n\n## Where to start\n\n- **Agents** — Declarative agents and A2A: [Agents overview](https://docs.hyperterse.com/agents/overview), [Agents quickstart](https://docs.hyperterse.com/agents/quickstart).\n- **Tools** — Callable MCP tools (DB or scripts): [Tools](https://docs.hyperterse.com/concepts/tools), [Scripts](https://docs.hyperterse.com/concepts/scripts), [Adapters](https://docs.hyperterse.com/concepts/adapters).\n- **Resources** — Static context for clients: [Resources](https://docs.hyperterse.com/concepts/resources).\n- **Prompts** — Reusable prompt templates: [Prompts](https://docs.hyperterse.com/concepts/prompts).\n\nThe [Quickstart](https://docs.hyperterse.com/quickstart) walks through install, scaffold, and run, then optional MCP tool checks.\n\n## What Hyperterse is for\n\n- Running **agents** alongside **MCP tools**, **prompts**, and **resources** in one deployable service\n- Exposing database queries and custom logic as MCP tools with declarative config\n- Production **Streamable HTTP** for MCP and **A2A** routes for agents\n- TypeScript handlers and transforms where config alone is not enough\n\n## Core capabilities\n\n- **Agents**: declarative configs, tool-access policies, multi-provider models, per-agent A2A HTTP.\n- **Filesystem discovery**: one MCP tool per tool definition; prompts and resources follow the same discover-and-compile model (see [Project structure](https://docs.hyperterse.com/concepts/project-structure)).\n- **Execution models**: DB-backed tools (`use` + `statement`) or script-backed tools (`handler`).\n- **Database adapters**: PostgreSQL, MySQL, SQLite, MongoDB, Redis.\n- **Per-tool auth**: built-in `allow_all` and `api_key`, plus custom plugins.\n- **In-memory caching**: global defaults + per-tool overrides.\n- **Observability**: OpenTelemetry tracing/metrics + structured logging.\n\n## Quick Start\n\n### Install\n\n```bash\ncurl -fsSL https://hyperterse.com/install | bash\n```\n\n### Initialize\n\n```bash\nhyperterse init\n```\n\nGenerated starter structure:\n\n```text\n.\n├── .hyperterse\n├── .agents/\n│   └── skills/\n│       ├── hyperterse-docs/\n│       │   └── SKILL.md\n│       └── hyperterse-agents/\n│           └── SKILL.md\n└── app/\n    └── tools/\n        └── hello-world/\n            ├── config.terse\n            └── handler.ts\n```\n\n### Start\n\n```bash\nhyperterse start\n```\n\nWith live reload:\n\n```bash\nhyperterse start --watch\n```\n\n### Verify health\n\n```bash\ncurl http://localhost:8080/heartbeat\n```\n\nExpected response:\n\n```json\n{ \"success\": true }\n```\n\n### Optional: list MCP tools\n\n```bash\ncurl -s -X POST http://localhost:8080/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"tools/list\",\n    \"id\": 1\n  }' | jq\n```\n\nBy design, Hyperterse exposes two transport-layer tools:\n\n- `search` - discover project tools by natural language\n- `execute` - execute a project tool by name\n\n### Optional: discover project tools (search)\n\n```bash\ncurl -s -X POST http://localhost:8080/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"search\",\n      \"arguments\": {\n        \"query\": \"hello world greeting\"\n      }\n    },\n    \"id\": 2\n  }' | jq\n```\n\nSearch hits include `name`, `description`, `relevance_score`, and `inputs`.\n\n### Execute a project tool\n\n```bash\ncurl -s -X POST http://localhost:8080/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"tools/call\",\n    \"params\": {\n      \"name\": \"execute\",\n      \"arguments\": {\n        \"tool\": \"hello-world\",\n        \"inputs\": { \"name\": \"Hyperterse\" }\n      }\n    },\n    \"id\": 3\n  }' | jq\n```\n\n### Validate and build\n\n```bash\nhyperterse validate\nhyperterse build -o dist\nhyperterse serve dist/\n```\n\n## Configuration model\n\n### Project layout\n\n```text\nmy-project/\n├── .hyperterse\n├── app/\n│   ├── adapters/\n│   │   └── primary-db.terse\n│   └── tools/\n│       ├── get-user/\n│       │   ├── config.terse\n│       │   ├── input.ts\n│       │   └── output.ts\n│       └── get-weather/\n│           ├── config.terse\n│           └── handler.ts\n└── package.json\n```\n\n### Root config (`.hyperterse`)\n\n```yaml\nname: my-service\nserver:\n  port: 8080\n  log_level: 3\ntools:\n  search:\n    limit: 10\n  cache:\n    enabled: true\n    ttl: 60\n```\n\n## Tool Examples\n\n### DB-backed tool\n\n```yaml\ndescription: \"Get user by ID\"\nuse: primary-db\nstatement: |\n  SELECT id, name, email\n  FROM users\n  WHERE id = {{ inputs.user_id }}\ninputs:\n  user_id:\n    type: int\nauth:\n  plugin: api_key\n  policy:\n    value: \"{{ env.API_KEY }}\"\n```\n\n### Script-backed tool\n\n```yaml\ndescription: \"Get weather by city\"\nhandler: \"./handler.ts\"\ninputs:\n  city:\n    type: string\nauth:\n  plugin: allow_all\n```\n\nSupported input types:\n\n- `string`\n- `int`\n- `float`\n- `boolean`\n- `datetime`\n\nEach tool must define exactly one execution mode:\n\n- `use` (adapter-backed), or\n- `handler` (script-backed)\n\n## Runtime model\n\n**MCP** — Streamable HTTP at `/mcp` (JSON-RPC 2.0): tools, prompts, resources, completion, subscriptions. See [MCP transport](https://docs.hyperterse.com/runtime/mcp-transport).\n\n**A2A** — JSON-RPC per agent at `/agent/{agentName}` (agent card, messaging, tasks, streaming). See [A2A transport](https://docs.hyperterse.com/runtime/a2a-transport) and [Agents](https://docs.hyperterse.com/agents/overview).\n\nExecution pipeline:\n\n1. Tool resolution\n2. Authentication\n3. Input transform (optional)\n4. Execution (DB or handler)\n5. Output transform (optional)\n6. Response serialization\n\n## MCP spec compliance\n\nHyperterse implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) specification **[2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25)**.\n\nCompliance status by component:\n\n| Spec component                                                                                                                | Status |\n| ----------------------------------------------------------------------------------------------------------------------------- | :----: |\n| [Base protocol](https://modelcontextprotocol.io/specification/2025-11-25/basic) (JSON-RPC 2.0)                                |   ✅   |\n| [Lifecycle](https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle) (initialize/initialized)                |   ✅   |\n| [Tools](https://modelcontextprotocol.io/specification/2025-11-25/server/tools) (list, call, listChanged)                      |   ✅   |\n| [Resources](https://modelcontextprotocol.io/specification/2025-11-25/server/resources) (list, read, subscribe, updated)       |   ✅   |\n| [Prompts](https://modelcontextprotocol.io/specification/2025-11-25/server/prompts) (list, get, listChanged)                   |   ✅   |\n| [Completion](https://modelcontextprotocol.io/specification/2025-11-25/server/utilities/completion) (ref/prompt, ref/resource) |   ✅   |\n| [Pagination](https://modelcontextprotocol.io/specification/2025-11-25/server/utilities/pagination) (cursor/nextCursor)        |   ⚠️   |\n| Tool result content types (image, audio, resource_link)                                                                       |   ⚠️   |\n\nText content for tool results is supported; image, audio, and resource links are optional. Pagination applies when tools, prompts, or resources exceed typical small-to-medium counts.\n\n## Security notes\n\n- Use `{{ env.VAR_NAME }}` for secrets and connection strings.\n- `{{ inputs.field }}` statement substitution is textual; enforce strict input schemas and safe query patterns.\n- Configure tool-level auth explicitly for production use.\n\n## Documentation map\n\n- [Documentation index (`llms.txt`)](https://docs.hyperterse.com/llms.txt)\n- [Introduction](https://docs.hyperterse.com/introduction)\n- [Quickstart](https://docs.hyperterse.com/quickstart)\n- [Project structure](https://docs.hyperterse.com/concepts/project-structure)\n- **Agents** — [Overview](https://docs.hyperterse.com/agents/overview), [Agents quickstart](https://docs.hyperterse.com/agents/quickstart), [Tool access](https://docs.hyperterse.com/agents/tool-access), [Runtime API](https://docs.hyperterse.com/agents/runtime-api), [Model providers](https://docs.hyperterse.com/agents/model-providers)\n- **Tools** — [Tools](https://docs.hyperterse.com/concepts/tools), [Scripts](https://docs.hyperterse.com/concepts/scripts), [Adapters](https://docs.hyperterse.com/concepts/adapters)\n- **Resources** — [Resources](https://docs.hyperterse.com/concepts/resources)\n- **Prompts** — [Prompts](https://docs.hyperterse.com/concepts/prompts)\n- [Authentication](https://docs.hyperterse.com/concepts/authentication)\n- [MCP transport](https://docs.hyperterse.com/runtime/mcp-transport)\n- [A2A transport](https://docs.hyperterse.com/runtime/a2a-transport)\n- [Execution pipeline](https://docs.hyperterse.com/runtime/execution-pipeline)\n- [CLI reference](https://docs.hyperterse.com/reference/cli)\n- [Agent config](https://docs.hyperterse.com/reference/agent-config), [Prompt config](https://docs.hyperterse.com/reference/prompt-config), [Resource config](https://docs.hyperterse.com/reference/resource-config)\n- [Configuration schemas](https://docs.hyperterse.com/reference/configuration-schemas)\n\n## Contributing\n\n1. Fork the repo.\n2. Create a feature branch.\n3. Add or update tests.\n4. Run validation locally.\n5. Open a PR.\n\nSee `CONTRIBUTING.md` and `CODE_OF_CONDUCT.md`.\n\n---\n\n<p align=\"center\">\n  Agentic server framework—agents, tools, prompts, resources, one engine.<br />\n  <a href=\"https://hyperterse.com\">Website</a>\n  •\n  <a href=\"https://github.com/hyperterse/hyperterse\">GitHub</a>\n  •\n  <a href=\"https://docs.hyperterse.com\">Documentation</a>\n</p>\n"}