About Laraue Boards
Laraue Boards is the backend for a Jira-like task management system. It organizes work through organizations, spaces, epics and issues, with configurable permissions and issue history.
Key features
- 01Create and manage issues
- 02Comment on issues
- 03View issue history
- 04Configure organization and space permissions
- 05Summarize AI content
Use cases
- 01Manage tasks and issues across spaces
- 02Review changes made to an issue
- 03Set access rules for organization entities
- 04Summarize AI content in the application
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://boards.laraue.com/boards-mcp/mcpclaude mcp add --transport http com-laraue-boards https://boards.laraue.com/boards-mcp/mcp{"mcpServers":{"com-laraue-boards":{"type":"http","url":"https://boards.laraue.com/boards-mcp/mcp"}}}Open in Cursor{"servers":{"com-laraue-boards":{"type":"http","url":"https://boards.laraue.com/boards-mcp/mcp"}}}Open in VS Code{"mcpServers":{"com-laraue-boards":{"type":"http","url":"https://boards.laraue.com/boards-mcp/mcp"}}}{"mcpServers":{"com-laraue-boards":{"serverUrl":"https://boards.laraue.com/boards-mcp/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://boards.laraue.com/boards-mcp/mcpAuth requiredTools
Details
From the project READMELaraue.Apps.Boards
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. Small local models sometimes
leave out a field of the JSON reply, so appsettings.Development.json turns on
AiSummarizer:UseJsonSchema: the reply is then constrained to a JSON Schema (response_format: json_schema, which Ollama supports). Leave it off for providers that only know plain JSON mode,
like DeepSeek. 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:
- Entity permissions. Allows to set up access to organization spaces, epics, issues
- Organization level. Make set for all entities in one time.
- Flexible setup for each space separately. Can be combined with organization level.
- Administrative permissions. They allow to set up access for administrative actions like renaming organization.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.