Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
e84e2ce
feat(trace): Disabled otlp-grpc block mode (#321)
ekkinox Mar 5, 2025
a2d1117
chore(main): release trace 1.4.0 (#322)
github-actions[bot] Mar 5, 2025
b2dd342
feat(httpclient): Added test server helper (#323)
ekkinox Mar 6, 2025
b818870
chore(main): release httpclient 1.5.0 (#324)
github-actions[bot] Mar 6, 2025
9e3a6d0
doc(fxhttpclient): Updated documentation (#325)
ekkinox Mar 6, 2025
ae58a8f
feat(fxcore): Added core tasks system (#326)
ekkinox Mar 13, 2025
8262d66
chore(main): release fxcore 1.11.0 (#327)
github-actions[bot] Mar 13, 2025
e4574e5
doc(main): Updated documentation (#328)
ekkinox Mar 13, 2025
f5b741b
feat(fxcore): Added core server exposition config (#329)
ekkinox Mar 18, 2025
c3c627a
chore(main): release fxcore 1.12.0 (#330)
github-actions[bot] Mar 18, 2025
286a454
doc(main): Updated documentation (#331)
ekkinox Mar 18, 2025
2930493
feat(fxclock): Provided module (#332)
MonkeyDDude Mar 31, 2025
4704444
chore(main): release fxclock 1.0.0 (#333)
github-actions[bot] Mar 31, 2025
9ddf337
doc(fxclock): Updated documentation (#334)
ekkinox Mar 31, 2025
233a5f5
feat(fxmcpserver): Provided module (#335)
ekkinox May 6, 2025
3b6e16f
chore(main): release fxmcpserver 1.0.0 (#336)
github-actions[bot] May 6, 2025
27f3460
doc(fxmcpserver): Updated documentation (#337)
ekkinox May 6, 2025
f117843
doc(fxmcpserver): Updated documentation (#338)
ekkinox May 6, 2025
ab30269
doc(main): Updated documentation (#339)
ekkinox May 7, 2025
66811ff
feat(fxmcpserver): Updated context handling (#340)
ekkinox May 7, 2025
50eae94
chore(main): release fxmcpserver 1.1.0 (#341)
github-actions[bot] May 7, 2025
119bd6c
feat(fxmcpserver): Updated SSE test client (#342)
ekkinox May 7, 2025
77157ca
chore(main): release fxmcpserver 1.2.0 (#343)
github-actions[bot] May 7, 2025
e126b4f
doc(main): Updated documentation (#344)
ekkinox May 8, 2025
2c6a111
doc(main): Updated documentation (#345)
ekkinox May 8, 2025
a178d88
doc(main): Updated documentation (#346)
ekkinox May 8, 2025
17dabfe
feat(fxmcpserver): Added MCP SSE server context hooks (#347)
ekkinox May 8, 2025
3265e3a
chore(main): release fxmcpserver 1.3.0 (#348)
github-actions[bot] May 8, 2025
dfc8362
doc(fxmcpserver): Updated documentation (#349)
ekkinox May 8, 2025
dfc463e
feat(fxmcpserver): Added tracing remote propagation (#350)
ekkinox May 14, 2025
dd07f38
chore(main): release fxmcpserver 1.4.0 (#351)
github-actions[bot] May 14, 2025
bd74d10
feat(fxmcpserver): Added autoconfiguration of the SSE test server end…
ekkinox May 14, 2025
b449b0f
chore(main): release fxmcpserver 1.5.0 (#353)
github-actions[bot] May 14, 2025
d9e879a
fix(fxmcpserver): Fixed MCP SSE server tracing to accept remote conte…
ekkinox May 26, 2025
4bc9276
chore(main): release fxmcpserver 1.5.1 (#355)
github-actions[bot] May 26, 2025
db59402
doc(main): Fixed tutorials documentation (#356)
ekkinox May 28, 2025
b9b01f0
feat(fxmcpserver): Provided streamable HTTP transport (#357)
ekkinox Jun 5, 2025
4176884
chore(main): release fxmcpserver 1.6.0 (#358)
github-actions[bot] Jun 5, 2025
eaa80e2
doc(fxmcpserver): Updated documentation (#359)
ekkinox Jun 5, 2025
9e24793
doc(fxmcpserver): Updated documentation (#360)
ekkinox Jun 17, 2025
50dbd83
chore(main): Adapted linter version (#363)
ekkinox Sep 1, 2025
2042e33
fix(fxhttpserver): Fix HTTP handlers/middlewares dependency injection…
damnedest Sep 1, 2025
37e8c19
chore(main): release fxhttpserver 1.7.1 (#364)
github-actions[bot] Sep 1, 2025
d318ece
fix(fxhealthcheck): Fix resolution collision by using full import pat…
damnedest Sep 2, 2025
69c137b
chore(main): release fxhealthcheck 1.1.1 (#369)
github-actions[bot] Sep 2, 2025
2cdca0b
fix(fxgrpcserver): Fix resolution collision by using full import path…
damnedest Sep 2, 2025
4977596
chore(main): release fxgrpcserver 1.3.1 (#370)
github-actions[bot] Sep 2, 2025
8db4440
fix(fxcron): Fix resolution collision by using full import path in ty…
damnedest Sep 2, 2025
e2c0482
chore(main): release fxcron 1.1.1 (#371)
github-actions[bot] Sep 2, 2025
bb92938
fix(fxworker): Fix resolution collision by using full import path in …
damnedest Sep 2, 2025
65ec792
chore(main): release fxworker 1.1.1 (#372)
github-actions[bot] Sep 2, 2025
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
2 changes: 2 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ jobs:
- "sql"
- "trace"
- "worker"
- "fxclock"
- "fxcore"
- "fxconfig"
- "fxcron"
Expand All @@ -41,6 +42,7 @@ jobs:
- "fxhttpclient"
- "fxhttpserver"
- "fxlog"
- "fxmcpserver"
- "fxmetrics"
- "fxorm"
- "fxsql"
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/fxclock-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "fxclock-ci"

on:
push:
branches:
- "feat**"
- "fix**"
- "hotfix**"
- "chore**"
paths:
- "fxclock/**.go"
- "fxclock/go.mod"
- "fxclock/go.sum"
pull_request:
types:
- opened
- synchronize
- reopened
branches:
- main
paths:
- "fxclock/**.go"
- "fxclock/go.mod"
- "fxclock/go.sum"

jobs:
ci:
uses: ./.github/workflows/common-ci.yml
secrets: inherit
with:
module: "fxclock"
go_version: "1.21"
32 changes: 32 additions & 0 deletions .github/workflows/fxmcpserver-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "fxmcpserver-ci"

on:
push:
branches:
- "feat**"
- "fix**"
- "hotfix**"
- "chore**"
paths:
- "fxmcpserver/**.go"
- "fxmcpserver/go.mod"
- "fxmcpserver/go.sum"
pull_request:
types:
- opened
- synchronize
- reopened
branches:
- main
paths:
- "fxmcpserver/**.go"
- "fxmcpserver/go.mod"
- "fxmcpserver/go.sum"

jobs:
ci:
uses: ./.github/workflows/common-ci.yml
secrets: inherit
with:
module: "fxmcpserver"
go_version: "1.23"
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"config":"1.5.0","log":"1.2.0","generate":"1.3.0","trace":"1.3.0","healthcheck":"1.1.0","httpclient":"1.4.0","httpserver":"1.6.0","orm":"1.1.0","fxconfig":"1.3.0","fxgenerate":"1.3.0","fxlog":"1.1.0","fxtrace":"1.2.0","fxmetrics":"1.2.0","fxhealthcheck":"1.1.0","fxorm":"1.2.0","fxhttpclient":"1.4.0","fxhttpserver":"1.7.0","fxcore":"1.10.0","worker":"1.2.0","fxworker":"1.1.0","fxcron":"1.1.0","grpcserver":"1.2.0","fxgrpcserver":"1.3.0","sql":"1.1.0","fxsql":"1.3.0","fxvalidator":"1.0.0"}
{"config":"1.5.0","log":"1.2.0","generate":"1.3.0","trace":"1.4.0","healthcheck":"1.1.0","httpclient":"1.5.0","httpserver":"1.6.0","orm":"1.1.0","fxconfig":"1.3.0","fxgenerate":"1.3.0","fxlog":"1.1.0","fxtrace":"1.2.0","fxmetrics":"1.2.0","fxhealthcheck":"1.1.1","fxorm":"1.2.0","fxhttpclient":"1.4.0","fxhttpserver":"1.7.1","fxcore":"1.12.0","worker":"1.2.0","fxworker":"1.1.1","fxcron":"1.1.1","grpcserver":"1.2.0","fxgrpcserver":"1.3.1","sql":"1.1.0","fxsql":"1.3.0","fxvalidator":"1.0.0","fxclock":"1.0.0","fxmcpserver":"1.6.0"}
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ Yokai provides ready to use `application templates` to start your projects:

- for [gRPC applications](https://ankorstore.github.io/yokai/getting-started/grpc-application)
- for [HTTP applications](https://ankorstore.github.io/yokai/getting-started/http-application)
- for [MCP applications](https://ankorstore.github.io/yokai/getting-started/mcp-application)
- for [worker applications](https://ankorstore.github.io/yokai/getting-started/worker-application)

## Showroom
Expand All @@ -86,6 +87,7 @@ Yokai provides a [showroom repository](https://github.com/ankorstore/yokai-showr

- [gRPC demo application](https://github.com/ankorstore/yokai-showroom/tree/main/grpc-demo)
- [HTTP demo application](https://github.com/ankorstore/yokai-showroom/tree/main/http-demo)
- [MCP demo application](https://github.com/ankorstore/yokai-showroom/tree/main/mcp-demo)
- [worker demo application](https://github.com/ankorstore/yokai-showroom/tree/main/worker-demo)

## Contributing
Expand Down
Binary file added docs/assets/images/dash-tasks-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/dash-tasks-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 7 additions & 6 deletions docs/demos/grpc-application.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ This demo application is following the [recommended project layout](https://go.d

- `cmd/`: entry points
- `configs/`: configuration files
- `internal/`:
- `interceptor/`: gRPC interceptors
- `service/`: gRPC services
- `bootstrap.go`: bootstrap
- `register.go`: dependencies registration
- `internal/`:
- `api/`: gRPC API
- `interceptor/`: gRPC interceptors
- `service/`: gRPC services
- `bootstrap.go`: bootstrap
- `register.go`: dependencies registration
- `proto/`: protobuf definition and stubs

### Makefile
Expand Down Expand Up @@ -76,7 +77,7 @@ This demo application also provides [reflection](../modules/fxgrpcserver.md#refl

### Authentication

This demo application provides example [authentication interceptors](https://github.com/ankorstore/yokai-showroom/tree/main/grpc-demo/internal/interceptor/authentication.go).
This demo application provides example [authentication interceptors](https://github.com/ankorstore/yokai-showroom/tree/main/grpc-demo/internal/api/interceptor/authentication.go).

You can enable authentication in the application [configuration file](https://github.com/ankorstore/yokai-showroom/tree/main/grpc-demo/configs/config.yaml) with `config.authentication.enabled=true`.

Expand Down
14 changes: 8 additions & 6 deletions docs/demos/http-application.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@ This demo application is following the [recommended project layout](https://go.d
- `migrations/`: database migrations
- `seeds/`: database seeds
- `internal/`:
- `handler/`: HTTP handlers
- `middleware/`: HTTP middlewares
- `model/`: models
- `repository/`: models repositories
- `service/`: services
- `api/`: HTTP API
- `handler/`: HTTP handlers
- `middleware/`: HTTP middlewares
- `domain/`: domain
- `model.go`: gophers model
- `repository.go`: gophers repository
- `service.go`: gophers service
- `bootstrap.go`: bootstrap
- `register.go`: dependencies registration
- `router.go`: routing registration
Expand Down Expand Up @@ -81,7 +83,7 @@ On [http://localhost:8080](http://localhost:8080), you can use:

### Authentication

This demo application provides an example [authentication middleware](https://github.com/ankorstore/yokai-showroom/blob/main/http-demo/internal/middleware/authentication.go).
This demo application provides an example [authentication middleware](https://github.com/ankorstore/yokai-showroom/blob/main/http-demo/internal/api/middleware/authentication.go).

You can enable authentication in the application [configuration file](https://github.com/ankorstore/yokai-showroom/blob/main/http-demo/configs/config.yaml) with `config.authentication.enabled=true`.

Expand Down
111 changes: 111 additions & 0 deletions docs/demos/mcp-application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
title: Demos - MCP application
icon: material/folder-eye-outline
---

# :material-folder-eye-outline: Demo - MCP application

> Yokai's [showroom](https://github.com/ankorstore/yokai-showroom) provides an [MCP server demo application](https://github.com/ankorstore/yokai-showroom/tree/main/mcp-demo).

## Overview

This [MCP server demo application](https://github.com/ankorstore/yokai-showroom/tree/main/mcp-demo) is a simple [MCP server](https://modelcontextprotocol.io/introduction) to manage [gophers](https://go.dev/blog/gopher).

It provides:

- a [Yokai](https://github.com/ankorstore/yokai) application container, with the [MCP server](../modules/fxmcpserver.md) and [SQL](../modules/fxsql.md) modules to offer the gophers MCP server
- a [MySQL](https://www.mysql.com/) container to store the gophers
- a [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) container to interact with the MCP server
- a [Jaeger](https://www.jaegertracing.io/) container to collect the application traces

### Layout

This demo application is following the [recommended project layout](https://go.dev/doc/modules/layout#server-project):

- `cmd/`: entry points
- `configs/`: configuration files
- `db/`:
- `migrations/`: database migrations
- `seeds/`: database seeds
- `internal/`:
- `domain/`: domain
- `model.go`: gophers model
- `repository.go`: gophers repository
- `service.go`: gophers service
- `mcp/`: MCP registrations
- `prompt/`: MCP prompts
- `resource/`: MCP resources
- `tool/`: MCP tools
- `bootstrap.go`: bootstrap
- `register.go`: dependencies registration

### Makefile

This demo application provides a `Makefile`:

```
make up # start the docker compose stack
make down # stop the docker compose stack
make logs # stream the docker compose stack logs
make fresh # refresh the docker compose stack
make migrate # run database migrations
make test # run tests
make lint # run linter
```

## Usage

### Start the application

To start the application, simply run:

```shell
make fresh
```

After a short moment, the application will offer:

- [http://localhost:8080/mcp](http://localhost:8080/mcp): application MCP server (Streamable HTTP)
- [http://localhost:8081](http://localhost:8081): application core dashboard
- [http://localhost:6274](http://localhost:6274): MCP inspector
- [http://localhost:16686](http://localhost:16686): jaeger UI

### Interact with the application

#### MCP inspector

You can use the provided [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector), available on [http://localhost:6274](http://localhost:6274).

To connect to the MCP server, use:

- `Streamable HTTP` as transport type
- `http://mcp-demo-app:8080/mcp` as URL

Then simply click `Connect`: from there, you will be able to interact with the resources, prompts and tools of the application.

#### MCP hosts

If you use MCP compatible applications like [Cursor](https://www.cursor.com/), or [Claude desktop](https://claude.ai/download), you can register this application as MCP server:

```json
{
"mcpServers": {
"mcp-demo-app": {
"url": "http://localhost:8080/mcp"
}
}
}
```

Note, if you client does not support remote MCP servers, you can use a [local proxy](https://developers.cloudflare.com/agents/guides/test-remote-mcp-server/#connect-your-remote-mcp-server-to-claude-desktop-via-a-local-proxy):

```json
{
"mcpServers": {
"mcp-demo-app": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8080/mcp"]
}
}
}
```
80 changes: 80 additions & 0 deletions docs/getting-started/mcp-application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: Getting started - MCP application
icon: material/rocket-launch-outline
---

# :material-rocket-launch-outline: Getting started - MCP application

> Yokai provides a ready to use [MCP server application template](https://github.com/ankorstore/yokai-mcp-template) to start your MCP projects.

## Overview

The [MCP server application template](https://github.com/ankorstore/yokai-mcp-template) provides:

- a ready to extend [Yokai](https://github.com/ankorstore/yokai) application, with the [MCP server](../modules/fxmcpserver.md) module installed
- a ready to use [dev environment](https://github.com/ankorstore/yokai-http-template/blob/main/docker-compose.yaml), based on [Air](https://github.com/air-verse/air) (for live reloading)
- a ready to use [Dockerfile](https://github.com/ankorstore/yokai-http-template/blob/main/Dockerfile) for production
- some examples of [MCP tool](https://github.com/ankorstore/yokai-mcp-template/blob/main/internal/tool/example.go) and [test](https://github.com/ankorstore/yokai-mcp-template/blob/main/internal/tool/example_test.go) to get started

### Layout

This template is following the [recommended project layout](https://go.dev/doc/modules/layout#server-project):

- `cmd/`: entry points
- `configs/`: configuration files
- `internal/`:
- `tool/`: MCP tool and test examples
- `bootstrap.go`: bootstrap
- `register.go`: dependencies registration

### Makefile

This template provides a [Makefile](https://github.com/ankorstore/yokai-http-template/blob/main/Makefile):

```
make up # start the docker compose stack
make down # stop the docker compose stack
make logs # stream the docker compose stack logs
make fresh # refresh the docker compose stack
make test # run tests
make lint # run linter
```

## Installation

### With GitHub

You can create your repository [using the GitHub template](https://github.com/new?template_name=yokai-mcp-template&template_owner=ankorstore).

It will automatically rename your project resources, this operation can take a few minutes.

Once ready, after cloning and going into your repository, simply run:

```shell
make fresh
```

### With gonew

You can install [gonew](https://go.dev/blog/gonew), and simply run:

```shell
gonew github.com/ankorstore/yokai-mcp-template github.com/foo/bar
cd bar
make fresh
```

## Usage

Once ready, the application will be available on:

- [http://localhost:8080/sse](http://localhost:8080/sse) for the application MCP server
- [http://localhost:8081](http://localhost:8081) for the application core dashboard

## Going further

To go further, you can:

- check the [MCP server](../modules/fxmcpserver.md) module documentation to learn more about its features
- follow the [MCP application tutorial](../tutorials/mcp-application.md) to create, step by step, an MCP server application
- test the [MCP demo application](../demos/mcp-application.md) to see all this in action
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,5 @@ Yokai provides ready to use `application templates` to start your projects:

- for [gRPC applications](getting-started/grpc-application.md)
- for [HTTP applications](getting-started/http-application.md)
- for [MCP applications](getting-started/mcp-application.md)
- for [worker applications](getting-started/worker-application.md)
Loading