MCP.so
登录

FastMCP Scala MCP Server

@arcaputo3

基本信息

分类

其他

许可证

MIT

传输方式

stdio

作者

arcaputo3

关于 FastMCP Scala MCP Server

A quick and easy way to deploy MCP servers using Scala

FastMCP Scala MCP Server 配置

使用下面的配置,将此服务器添加到你的 MCP 客户端。

{
  "mcpServers": {
    "fast-mcp-scala": {
      "command": "npx",
      "args": [
        "@modelcontextprotocol/inspector",
        "scala-cli",
        "scripts/quickstart.sc"
      ]
    }
  }
}

FastMCP Scala MCP Server 工具

工具列表暂未提供

当前收录暂时没有可展示的工具列表,不代表服务没有工具。请查阅项目文档了解支持的能力。

点击上方按钮,在临时沙箱中运行此服务器并实时获取工具列表。

概览

What is FastMCP-Scala?

FastMCP-Scala is a Scala 3 library for building Model Context Protocol (MCP) servers. It provides annotation-driven and typed-contract APIs that run on both the JVM and Scala.js/Bun, targeting developers who want a low-ceremony way to expose tools, resources, and prompts to LLM clients via the MCP protocol.

How to use FastMCP-Scala?

Add the library dependency for JVM (%%) or Scala.js (%%%), then extend McpServerApp[Stdio, Self.type] or McpServerApp[Http, Self.type] and declare tools with @Tool annotations. The trait handles annotation scanning, schema derivation, and transport lifecycle automatically. For typed contracts, override tools, prompts, staticResources, or templateResources with McpTool, McpPrompt, etc.

Key features of FastMCP-Scala

  • Annotation-driven tools, resources, and prompts with zero boilerplate
  • Typed contracts as first-class, testable, cross-platform values
  • Cross-platform support: JVM (JDK 17+) and Scala.js/Bun (Node 18+)
  • Built on ZIO 2, Tapir, Jackson 3 (JVM), and zio-json (JS)
  • Transport selected at compile time via a phantom type parameter
  • Full MCP spec coverage including Streamable HTTP and experimental Tasks

Use cases of FastMCP-Scala

  • Building single-file MCP servers for quick prototypes and demos
  • Creating libraries of reusable, composable MCP tools and prompts
  • Running production MCP servers with HTTP transport and session management
  • Integrating long-running operations via the experimental Tasks API

常见问题

1

How do annotation-driven and typed-contract registration differ?

Annotations (`@Tool` + `scanAnnotations`) require no extra wiring and are best for quick servers, while typed contracts (`McpTool`, `McpPrompt`, etc.) are first-class values that support testing, composition, and cross-module sharing. Both can coexist on the same server.

2

What runtime dependencies are required?

JVM requires JDK 17+ and the Java MCP SDK 1.1.1. Scala.js requires Scala.js 1.x and runs on Bun (first-class) or Node 18+, using the TypeScript MCP SDK 1.29.0.

3

Is Tasks support production ready?

Tasks are experimental and off by default. They are enabled per server via `McpServerSettings(tasks = TaskSettings(enabled = true))` and opt-in per tool. On JVM, Tasks only work with the built-in HTTP transport (`stateless = false`); stdio and stateless HTTP fail-fast if Tasks are enabled.

4

What transport options are available?

Transport is a compile-time phantom type: `Stdio` (for Claude Desktop, MCP Inspector) or `Http` (for remote clients, load balancers). The HTTP mode serves the full Streamable HTTP spec with optional stateless mode, and runs on a configurable port (default 8000).

评论

其他 分类下的更多 MCP 服务器