tachyonmcp/tachyon

💫 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.

Java

30

418 commits

updated Sep 24, 2026

See the code

See what people are saying

SourceMessageScoreDate

Show HN: Tachyon – Java MCP Server SDK

3

Sep 24, 2026

README

Maven Central Java 21+ Build MCPConformance: 2025-11-25+2026-07-28 codecov

Docs Api Docs LLM Wiki Ask DeepWiki

Tachyon MCP banner

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.

Why Tachyon?

  • Simple handlers -- write blocking Java code or suspending Kotlin code without reactive pipelines or manual thread pools.
  • Stable application API -- protocol-version mappers isolate handlers from wire-format changes.
  • Java annotations support -- adapt existing mcp-java, LangChain4j, or Spring AI annotated services into Tachyon MCP servers.
  • Stateless by default -- opt into sessions only when you need resumable SSE, event replay, and TTL cleanup.
  • Production transport -- Netty backpressure, graceful shutdown, DNS-rebinding protection, CORS, and native transport auto-detection (io_uringepollkqueue → NIO).
  • Built-in OpenTelemetry -- register tachyon-opentelemetry's listener for MCP semantic-convention spans and metrics, with an opt-in policy for payload capture.

Quickstart

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.

Implemented features

AreaSupport
MCP surfaceTools, resources and templates, prompts, completions, logging, sampling, form/URL elicitation, cancellation, subscriptions, pagination, and progress notifications
AnnotationsOptional adapters for mcp-java, LangChain4j, and Spring AI, mapped onto Tachyon's standard registries
TasksFull tasks/* lifecycle, state validation, status notifications, retention, and TasksExtension for SEP-1686
Agent SkillsSkillsExtension implements the SEP-2640 draft: filesystem/classpath registries, skill:// resources, skills/list, skills/get, and directory reads
ExtensionsSEP-2133 negotiation, custom JSON-RPC methods, capability advertisement, and extension-gated features
RuntimeStateless or resumable sessions, Last-Event-ID replay, pluggable stores, virtual-thread handlers, request timeouts, and graceful draining
ObservabilityOpenTelemetry spans and metrics via tachyon-opentelemetry, following the MCP semantic conventions, plus an opt-in payload capture policy -- see docs
Java and KotlinIndependent sync/async Java contracts and a coroutine-first Kotlin DSL
TestingOfficial conformance suites plus a testkit for dynamic servers and fluent JSON-RPC assertions

Documentation and examples

  • Configuration -- network, native I/O, sessions, CORS, and runtime limits
  • Observability -- observation listeners, payload capture policy, and the bundled OpenTelemetry integration
  • Tools, resources, and tasks -- feature APIs and examples
  • Annotations -- mcp-java, LangChain4j, and Spring AI providers
  • Extensions and MCP Skills -- custom protocol methods and SEP support
  • Kotlin DSL -- builders, scopes, and suspending handlers
  • Examples -- runnable Java and Kotlin servers
  • FAQ -- frameworks, concurrency, deployment, and compatibility

Coding-agent skill

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.

License

Tachyon MCP is available under the terms of the Apache 2.0.

ai
ai-agents
ai-agents-mcp
ai-agent-tools
java
java-21
java-25
java-26
java-27
llm-tools
mcp
model-context-protocol
netty
server

Contributors

kpavlov

353 commits

renovate[bot]

53 commits

seanxuu

2 commits

tachyonmcp/tachyon

💫 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.

Java

30

418 commits

updated Sep 24, 2026

See the code

See what people are saying

SourceMessageScoreDate

Show HN: Tachyon – Java MCP Server SDK

3

Sep 24, 2026

README

Maven Central Java 21+ Build MCPConformance: 2025-11-25+2026-07-28 codecov

Docs Api Docs LLM Wiki Ask DeepWiki

Tachyon MCP banner

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.

Why Tachyon?

  • Simple handlers -- write blocking Java code or suspending Kotlin code without reactive pipelines or manual thread pools.
  • Stable application API -- protocol-version mappers isolate handlers from wire-format changes.
  • Java annotations support -- adapt existing mcp-java, LangChain4j, or Spring AI annotated services into Tachyon MCP servers.
  • Stateless by default -- opt into sessions only when you need resumable SSE, event replay, and TTL cleanup.
  • Production transport -- Netty backpressure, graceful shutdown, DNS-rebinding protection, CORS, and native transport auto-detection (io_uringepollkqueue → NIO).
  • Built-in OpenTelemetry -- register tachyon-opentelemetry's listener for MCP semantic-convention spans and metrics, with an opt-in policy for payload capture.

Quickstart

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.

Implemented features

AreaSupport
MCP surfaceTools, resources and templates, prompts, completions, logging, sampling, form/URL elicitation, cancellation, subscriptions, pagination, and progress notifications
AnnotationsOptional adapters for mcp-java, LangChain4j, and Spring AI, mapped onto Tachyon's standard registries
TasksFull tasks/* lifecycle, state validation, status notifications, retention, and TasksExtension for SEP-1686
Agent SkillsSkillsExtension implements the SEP-2640 draft: filesystem/classpath registries, skill:// resources, skills/list, skills/get, and directory reads
ExtensionsSEP-2133 negotiation, custom JSON-RPC methods, capability advertisement, and extension-gated features
RuntimeStateless or resumable sessions, Last-Event-ID replay, pluggable stores, virtual-thread handlers, request timeouts, and graceful draining
ObservabilityOpenTelemetry spans and metrics via tachyon-opentelemetry, following the MCP semantic conventions, plus an opt-in payload capture policy -- see docs
Java and KotlinIndependent sync/async Java contracts and a coroutine-first Kotlin DSL
TestingOfficial conformance suites plus a testkit for dynamic servers and fluent JSON-RPC assertions

Documentation and examples

  • Configuration -- network, native I/O, sessions, CORS, and runtime limits
  • Observability -- observation listeners, payload capture policy, and the bundled OpenTelemetry integration
  • Tools, resources, and tasks -- feature APIs and examples
  • Annotations -- mcp-java, LangChain4j, and Spring AI providers
  • Extensions and MCP Skills -- custom protocol methods and SEP support
  • Kotlin DSL -- builders, scopes, and suspending handlers
  • Examples -- runnable Java and Kotlin servers
  • FAQ -- frameworks, concurrency, deployment, and compatibility

Coding-agent skill

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.

License

Tachyon MCP is available under the terms of the Apache 2.0.

ai
ai-agents
ai-agents-mcp
ai-agent-tools
java
java-21
java-25
java-26
java-27
llm-tools
mcp
model-context-protocol
netty
server

Contributors

kpavlov

353 commits

renovate[bot]

53 commits

seanxuu

2 commits

Languages

Java

84.5%

Kotlin

7.4%

TypeScript

4.3%

Python

3.7%