Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

All notable changes to FastMCP-Scala will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.1] - `RefResolver` Patch (2025-05-08)

### Fixed
- Fixed `RefResolver` to handle functions with more than 3 arguments
- Added explicit support for functions with 4-22 arguments
- Added clear error message when attempting to use more than 22 arguments (Scala's built-in limit)

## [0.1.0] - Initial Release (2025-04-25)

### Added
- Initial public release of FastMCP
- Support for Scala-native MCP function tools
- JSON Schema generation for function parameters
- Runtime function resolution
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ Features
Add to your **`build.sbt`** (defaulting to **Scala 3.6.4**):

```scala
libraryDependencies += "com.tjclp" %% "fast-mcp-scala" % "0.1.0"
libraryDependencies += "com.tjclp" %% "fast-mcp-scala" % "0.1.1"
```

## Quickstart

```scala
//> using scala 3.6.4
//> using dep com.tjclp::fast-mcp-scala:0.1.0
//> using dep com.tjclp::fast-mcp-scala:0.1.1
//> using options "-Xcheck-macros" "-experimental"

import com.tjclp.fastmcp.core.{Tool, ToolParam, Prompt, PromptParam, Resource}
Expand Down Expand Up @@ -65,7 +65,7 @@ npx @modelcontextprotocol/inspector scala-cli <path_to_repo>/scripts/quickstart.
You can also run examples directly from the command line:
```bash
scala-cli \
-e '//> using dep com.tjclp::fast-mcp-scala:0.1.0' \
-e '//> using dep com.tjclp::fast-mcp-scala:0.1.1' \
--main-class com.tjclp.fastmcp.examples.AnnotatedServer
```

Expand All @@ -80,7 +80,7 @@ In Claude desktop, you can add the following to your `claude_desktop_config.json
"command": "scala-cli",
"args": [
"-e",
"//> using dep com.tjclp::fast-mcp-scala:0.1.0",
"//> using dep com.tjclp::fast-mcp-scala:0.1.1",
"--main-class",
"com.tjclp.fastmcp.examples.AnnotatedServer"
]
Expand Down Expand Up @@ -143,14 +143,14 @@ Unmanaged JARs placed in a project's `lib/` folder are picked up automatically b
You can use `fast-mcp-scala` in another scala‑cli project:
```scala
//> using scala 3.6.4
//> using dep com.tjclp::fast-mcp-scala:0.1.0
//> using dep com.tjclp::fast-mcp-scala:0.1.1
//> using options "-Xcheck-macros" "-experimental"
```

You can also point directly at the local JAR:

```scala
//> using scala 3.6.4
//> using lib "/absolute/path/to/fast-mcp-scala_3-0.1.0.jar"
//> using lib "/absolute/path/to/fast-mcp-scala_3-0.1.1.jar"
//> using options "-Xcheck-macros" "-experimental"
```
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ sonatypeTimeoutMillis := 60000

ThisBuild / sonatypeCredentialHost := sonatypeCentralHost

ThisBuild / version := "0.1.1-SNAPSHOT"
ThisBuild / version := "0.1.1"

ThisBuild / scalaVersion := "3.6.4" // Using Scala 3
ThisBuild / versionScheme := Some("semver-spec")
Expand Down
2 changes: 1 addition & 1 deletion scripts/examples.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//> using scala "3.6.4"
//> using dep com.tjclp::fast-mcp-scala:0.1.0
//> using dep com.tjclp::fast-mcp-scala:0.1.1
//> using options "-Xcheck-macros" "-experimental" // Enable verbose macro processing

// This is a launcher file for scala-cli
Expand Down
4 changes: 2 additions & 2 deletions scripts/quickstart.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//> using scala 3.6.4
//> using dep com.tjclp::fast-mcp-scala:0.1.0
//> using dep com.tjclp::fast-mcp-scala:0.1.1
//> using options "-Xcheck-macros" "-experimental"

import com.tjclp.fastmcp.core.{Tool, ToolParam, Prompt, PromptParam, Resource}
Expand Down Expand Up @@ -29,7 +29,7 @@ object ExampleServer extends ZIOAppDefault:

override def run =
for
server <- ZIO.succeed(FastMcpServer("ExampleServer", "0.1.0"))
server <- ZIO.succeed(FastMcpServer("ExampleServer", "0.1.1"))
_ <- ZIO.attempt(server.scanAnnotations[Example.type])
_ <- server.runStdio()
yield ()