💫 Tachyon MCP Runtime for Java and Kotlin - Model Context Protocol (MCP) server with Streamable HTTP, native Netty transports, tools, tasks, resources, prompts, completions, skills over MCP, resumable sessions, and stateless deployment support.
See the code
Tachyon MCP is a Java 21+ server runtime for the Model Context Protocol. It implements MCP 2025-11-25 and 2026-07-28 over Streamable HTTP and passes the official conformance suites for both versions.
Build servers with synchronous Java handlers or a coroutine-first Kotlin DSL. Tachyon runs blocking handlers on virtual threads, keeps them off the Netty event loop, and requires no application framework.
io_uring → epoll → kqueue → NIO).tachyon-opentelemetry's listener for MCP
semantic-convention spans and metrics, with an opt-in policy for payload capture.Import the BOM once to pin the version, then add the core dependency:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.tachyonmcp</groupId>
<artifactId>tachyon-bom</artifactId>
<version>${tachyon.version}</version> <!-- get latest version from Maven Central -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.tachyonmcp</groupId>
<artifactId>tachyon-core</artifactId>
</dependency>
</dependencies>
Create and start a server:
import dev.tachyonmcp.api.server.features.tools.ToolResult;
import dev.tachyonmcp.core.server.TachyonServer;
public class WeatherMcpServer {
public static void main(String... args) {
var server = TachyonServer.builder()
.name("weather-mcp")
.withTools(tools -> tools.register(
tool -> tool.name("get_forecast")
.description("Get weather forecast")
.inputSchema("""
{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}
"""),
(context, request) -> ToolResult.text("☀️ 22°C")))
.port(8080)
.build();
server.start();
}
}
See the quickstart for Java and Kotlin examples plus a curl test.
| Area | Support |
|---|---|
| MCP surface | Tools, resources and templates, prompts, completions, logging, sampling, form/URL elicitation, cancellation, subscriptions, pagination, and progress notifications |
| Annotations | Optional adapters for mcp-java, LangChain4j, and Spring AI, mapped onto Tachyon's standard registries |
| Tasks | Full tasks/* lifecycle, state validation, status notifications, retention, and TasksExtension for SEP-1686 |
| Agent Skills | SkillsExtension implements the SEP-2640 draft: filesystem/classpath registries, skill:// resources, skills/list, skills/get, and directory reads |
| Extensions | SEP-2133 negotiation, custom JSON-RPC methods, capability advertisement, and extension-gated features |
| Runtime | Stateless or resumable sessions, Last-Event-ID replay, pluggable stores, virtual-thread handlers, request timeouts, and graceful draining |
| Observability | OpenTelemetry spans and metrics via tachyon-opentelemetry, following the MCP semantic conventions, plus an opt-in payload capture policy -- see docs |
| Java and Kotlin | Independent sync/async Java contracts and a coroutine-first Kotlin DSL |
| Testing | Official conformance suites plus a testkit for dynamic servers and fluent JSON-RPC assertions |
This repository also includes a skill that teaches coding agents how to build Tachyon servers. It
is separate from the server-side SkillsExtension described above.
npx skills add tachyonmcp/tachyon --skill tachyon-mcp
Its Java and Kotlin examples are compiled during the project build to keep them current.
Tachyon MCP is available under the terms of the Apache 2.0.
Java
84.5%
Kotlin
7.4%
TypeScript
4.3%
Python
3.7%
💫 Tachyon MCP Runtime for Java and Kotlin - Model Context Protocol (MCP) server with Streamable HTTP, native Netty transports, tools, tasks, resources, prompts, completions, skills over MCP, resumable sessions, and stateless deployment support.
See the code
Tachyon MCP is a Java 21+ server runtime for the Model Context Protocol. It implements MCP 2025-11-25 and 2026-07-28 over Streamable HTTP and passes the official conformance suites for both versions.
Build servers with synchronous Java handlers or a coroutine-first Kotlin DSL. Tachyon runs blocking handlers on virtual threads, keeps them off the Netty event loop, and requires no application framework.
io_uring → epoll → kqueue → NIO).tachyon-opentelemetry's listener for MCP
semantic-convention spans and metrics, with an opt-in policy for payload capture.Import the BOM once to pin the version, then add the core dependency:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.tachyonmcp</groupId>
<artifactId>tachyon-bom</artifactId>
<version>${tachyon.version}</version> <!-- get latest version from Maven Central -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.tachyonmcp</groupId>
<artifactId>tachyon-core</artifactId>
</dependency>
</dependencies>
Create and start a server:
import dev.tachyonmcp.api.server.features.tools.ToolResult;
import dev.tachyonmcp.core.server.TachyonServer;
public class WeatherMcpServer {
public static void main(String... args) {
var server = TachyonServer.builder()
.name("weather-mcp")
.withTools(tools -> tools.register(
tool -> tool.name("get_forecast")
.description("Get weather forecast")
.inputSchema("""
{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}
"""),
(context, request) -> ToolResult.text("☀️ 22°C")))
.port(8080)
.build();
server.start();
}
}
See the quickstart for Java and Kotlin examples plus a curl test.
| Area | Support |
|---|---|
| MCP surface | Tools, resources and templates, prompts, completions, logging, sampling, form/URL elicitation, cancellation, subscriptions, pagination, and progress notifications |
| Annotations | Optional adapters for mcp-java, LangChain4j, and Spring AI, mapped onto Tachyon's standard registries |
| Tasks | Full tasks/* lifecycle, state validation, status notifications, retention, and TasksExtension for SEP-1686 |
| Agent Skills | SkillsExtension implements the SEP-2640 draft: filesystem/classpath registries, skill:// resources, skills/list, skills/get, and directory reads |
| Extensions | SEP-2133 negotiation, custom JSON-RPC methods, capability advertisement, and extension-gated features |
| Runtime | Stateless or resumable sessions, Last-Event-ID replay, pluggable stores, virtual-thread handlers, request timeouts, and graceful draining |
| Observability | OpenTelemetry spans and metrics via tachyon-opentelemetry, following the MCP semantic conventions, plus an opt-in payload capture policy -- see docs |
| Java and Kotlin | Independent sync/async Java contracts and a coroutine-first Kotlin DSL |
| Testing | Official conformance suites plus a testkit for dynamic servers and fluent JSON-RPC assertions |
This repository also includes a skill that teaches coding agents how to build Tachyon servers. It
is separate from the server-side SkillsExtension described above.
npx skills add tachyonmcp/tachyon --skill tachyon-mcp
Its Java and Kotlin examples are compiled during the project build to keep them current.
Tachyon MCP is available under the terms of the Apache 2.0.
Java
84.5%
Kotlin
7.4%
TypeScript
4.3%
Python
3.7%