Laraue.Apps.Boards

MCP serverEverything else

List, view, create, edit, and move issues in your Laraue Boards organization.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use Laraue.Apps.Boards

Install Laraue.Apps.Boards

The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http laraue-apps-boards 'https://boards.laraue.com/boards-mcp/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://boards.laraue.com/boards-mcp/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=laraue-apps-boards&config=eyJ1cmwiOiJodHRwczovL2JvYXJkcy5sYXJhdWUuY29tL2JvYXJkcy1tY3AvbWNwIn0=

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://boards.laraue.com/boards-mcp/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add laraue-apps-boards --url 'https://boards.laraue.com/boards-mcp/mcp'

    Run it once, then sign in with codex mcp login laraue-apps-boards if the server asks for an account.

From the project's README

As published by Laraue/Laraue.Apps.Boards in README.md.

The repository contains backend for Task-management Jira-like system.

Interface example

App structure

Laraue.Apps.Boards.DataAccess

The layer that contains models and enums associated with these models

Laraue.Apps.Boards.Services

The layer with services that use other services. Required to encapsulate hard logic mostly in CRD operations.
Example: issue creation may update updated_at property, add record to history changes etc.
So the service provides the method to create issue.

Note: core services should not manage transactions, but may require them calling context.Database.EnsureTransaction at the top of function.

Laraue.Apps.Boards.WebApiServices

Services to call from WebApi

Laraue.Apps.Boards.TelegramServices

Services to call from TelegramApi

Local run

Check how to deal with the frontend in Frontend Repository

Each host reads its own appsettings.Development.json (gitignored, not the checked-in appsettings.json) for local overrides. A minimal one for Laraue.Apps.Boards.WebApiHost that runs against a local Postgres with no Identity/Billing dependencies (AI summarization still defaults to a local Ollama instance - see below):

{
  "Auth": {
    "Key": "any-local-signing-key"
  },
  "MockExternalServices": true
}

Laraue.Apps.Boards.TelegramHost's only needs the MockExternalServices line (it has its own Telegram:Token to set instead of Auth:Key). See the subsections below for what each setting does and how to point at a real AI/Identity/Billing instance instead.

AI content summarization (local dev)

appsettings.json's AiSummarizer section defaults to a local Ollama instance, since Ollama exposes an OpenAI-compatible /v1/chat/completions endpoint and the summarizer talks to any OpenAI-compatible API. Install Ollama, then pull the model referenced in config:

ollama pull gemma3:12b

Ollama serves on http://localhost:11434 by default once installed. On prod, override AiSummarizer:BaseUrl/AiSummarizer:Model/AiSummarizer:ApiKey to point at a real provider (e.g. DeepSeek) instead.

Running without Identity/Billing

Boards calls out to two other services over gRPC: Laraue.Apps.Identity (global user identity on first login) and Laraue.Apps.Billing (AI token spend/subscription limits). Neither has to be running locally - both hosts' appsettings.Development.json set "MockExternalServices": true, which swaps in in-process fakes for these calls (always succeeds, generous fixed limits, no network traffic) instead of the real gRPC clients. Set it back to false if you actually want to exercise a locally-running Identity/Billing instance.

Create a new user for Test

POST: http://localhost:5200/api/test/user

{
    "username": "winDiezel",
    "languageCode": "ru",
    "firstName": null,
    "lastName": null
}

Auth as user on Test

Make a request GET http://localhost:5200/api/test/user/{userId} to receive a bearer token.
Set it in frontend .env file:

NUXT_PUBLIC_TEST_USER_TOKEN=Taken_Token

Permissions arch

Application permissions are divided into two parts:

  1. Entity permissions. Allows to set up access to organization spaces, epics, issues
    1. Organization level. Make set for all entities in one time.
    2. Flexible setup for each space separately. Can be combined with organization level.
  2. Administrative permissions. They allow to set up access for administrative actions like renaming organization.
Advanced
Delivery
boards MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
com-laraue-boards
Source
github.com/Laraue/Laraue.Apps.Boards
Hosted endpoint
https://boards.laraue.com/boards-mcp/mcp