Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort to listen on for HTTP mode. Setting this switches the server from stdio to Streamable HTTP.
KELVIA_API_URLNoBase URL for the Kelvia API. Defaults to http://localhost:4000/api.
MCP_PUBLIC_URLNoPublic protected-resource origin for OAuth.
MCP_RATE_LIMITNoRequests per token per minute. Defaults to 300.
KELVIA_TOOLSETSNoComma-separated list of toolsets to expose. Defaults to all.
KELVIA_API_TOKENNoAgent key or personal token used for authentication in stdio mode.
MCP_INSTANCE_COUNTNoNumber of HTTP instances.
MCP_ALLOWED_ORIGINSNoComma-separated CORS allowlist.
MCP_STICKY_SESSIONSNoRequired for multi-instance legacy SSE.
MCP_AUTHORIZATION_SERVERNoOAuth authorization-server origin.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_boardsA

List all Kelvia boards accessible to the authenticated user. Returns id, name, slug, isArchived, columns (kanban columns), stages (sprints/milestones), config (custom priorities and statuses), taskCounter, createdAt.

get_boardA

Get detailed info for a single board by its URL slug (slug is the short identifier in board URLs, e.g. 'my-project'). Includes all columns, stages with their statuses, board config and member count.

list_tasksA

List tasks with optional filters. Without any filter returns all tasks the user has access to across every board. By default returns a COMPACT shape to stay within token limits: { board: { id, name, slug, columns } | null, tasks: [{ id, number, title, status, priority, columnId, stageId, tags (names), assignees (count), dueDate }], count }. Pass detailed=true for full task objects (heavy — can exceed limits on large boards) or use get_task / get_task_by_number for one full task.

list_daily_tasksA

List tasks relevant for today (assigned to me and not done, or due today). Optional board filter by slug.

list_calendar_tasksA

List tasks with a due date inside a date range, for a calendar view. Unlike list_tasks, this is scoped by due date range rather than status/search filters.

list_daily_plan_blocksA

List the user's personal day-planner blocks (their own time-blocking schedule) visible on a given local date, with each block's done/not-done status for that date. Different from list_daily_tasks, which lists board tasks due today — this is the user's private schedule, not board tasks.

list_daily_plan_definitionsA

List the user's day-planner block definitions as stored (recurrence rule, scheduled time, active_from) — not resolved against a specific date, unlike list_daily_plan_blocks.

list_overdue_daily_plan_blocksA

List the user's day-planner blocks that were due before the given local date and are still not done.

create_daily_plan_blockA

Create a block in the user's personal day-planner (their own time-blocking schedule, not a board task). Title may reference a board task with @boardSlug/N (e.g. @marketing/42) — the app renders it as a clickable link to that task. Returns the created block.

update_daily_plan_blockA

Update fields of an existing day-planner block. Pass only the fields you want to change. Title may reference a board task with @boardSlug/N. Returns the updated block.

set_daily_plan_block_statusA

Mark a day-planner block done or not-done for one specific local date (recurring blocks track completion per-day, not globally).

reorder_daily_plan_blocksA

Reorder the day-planner blocks visible on a given local date (drag-and-drop equivalent). Pass ALL block UUIDs visible on that date, in the desired order.

delete_daily_plan_blockA

Remove a day-planner block starting from a given local date onward (soft-delete — earlier occurrences and their completion history are kept).

get_taskA

Get full details of a single task by its UUID. Includes all fields: title, description, status, priority, dueDate, assignees, watchers, tags, stage, parent task, subtasks, worklogs (time tracking), and comments count.

get_task_by_numberA

Get a task by its human-friendly number (the #N shown in the UI) within a board. Resolves the number to the task UUID and returns full details (same shape as get_task). Handy when you know the #N but not the UUID.

get_task_commentsA

Get all comments for a task ordered by creation time. Each comment includes id, content, createdAt, updatedAt and the author (user).

get_task_worklogsA

Get time-tracking worklogs for a task. Each entry has id, minutes, comment, workedAt, and the author.

get_task_activityA

Get the audit trail for a task: who changed what and when (status/priority/assignee/field changes, comments, worklogs), newest first.

get_board_activityA

Get the audit trail for a whole board: task/stage/member changes across the board, newest first. Requires ADMIN/OWNER role on that board.

list_board_membersA

List all members of a board with their roles (OWNER, ADMIN, MEMBER, VIEWER). Use list_boards first to obtain the board id.

update_board_memberA

Update board member role/title. Requires ADMIN/OWNER on that board.

remove_board_memberA

Remove a member from board. Requires ADMIN/OWNER.

list_board_invitationsA

List pending/accepted/declined invitations for a board. Requires ADMIN/OWNER.

create_board_invitationA

Invite a user to board by email with role ADMIN/MEMBER/VIEWER. Requires ADMIN/OWNER.

revoke_board_invitationA

Revoke an invitation by id. Requires ADMIN/OWNER.

list_my_invitationsA

List board invitations sent to the current user (pending/accepted/declined), with the inviting board and role.

accept_board_invitationA

Accept a pending board invitation sent to the current user. Returns the created board membership.

decline_board_invitationA

Decline a pending board invitation sent to the current user.

get_current_userA

Get the profile of the currently authenticated user (id, email, firstName, lastName, avatarUrl).

list_board_tagsA

Get the tag vocabulary of a board. Tags belong to the board and are shared by everyone on it — the same name on another board is a different tag. Returns id and name; use the ids in create_task/update_task tag_ids, or just pass tag_names and let the board pick up new ones.

list_board_columnsA

Get kanban columns for a board by slug. Returns id and name for each column — use these IDs in create_task and update_task.

create_board_stageA

Create a stage on a board. Requires ADMIN/OWNER role on that board.

materialize_board_backlog_stageB

Create (or fetch, if it already exists) the special backlog stage for a board — holds tasks that aren't part of any active/planned stage. Requires ADMIN/OWNER role on that board.

update_board_stageB

Rename a board stage.

delete_board_stageB

Delete a board stage.

reorder_board_stagesA

Reorder stages on a board by passing full ordered list of stage IDs.

start_board_stageA

Set stage status to ACTIVE.

complete_board_stageA

Set stage status to COMPLETED (frozen).

reopen_board_stageA

Reopen stage from COMPLETED to ACTIVE.

create_taskA

Create a new task on a board. Requires the board slug and a title. Returns the created task with its generated id and number.

update_taskA

Update one or more fields of an existing task. Pass only the fields you want to change — all are optional. Returns the updated task.

reorder_taskA

Move/reorder a task inside a column (kanban drag-and-drop equivalent).

delete_taskA

Permanently delete a task by its UUID. Only the task creator or a board OWNER/ADMIN can delete tasks. Returns a confirmation message.

add_task_commentA

Post a comment on a task. Returns the created comment with author info.

get_task_summaryA

Read a task's summary — the single digest shown in its Summary tab. Returns { summary, summaryUpdatedAt, summaryAuthor }.

set_task_summaryA

Write or replace a task's summary: a concise digest of the task's current state and what has been done, shown in the task's Summary tab. Markdown supported. Replaces any previous summary (one per task).

update_task_commentA

Update an existing task comment.

delete_task_commentA

Delete a comment from a task. You can only delete your own comments.

add_task_worklogA

Log time spent on a task. minutes must be > 0 and ≤ 1440 (24 hours). Returns the created worklog entry.

update_task_worklogA

Update an existing worklog entry for a task.

delete_task_worklogA

Delete a worklog entry from a task.

create_boardA

Create a new board. Optionally supply an array of column names (defaults to a standard set). Returns the created board with its generated slug.

update_boardA

Update a board's name or column list. Pass only the fields you want to change. Changing columns reorders/renames them. Returns the updated board.

delete_boardA

Delete a board by UUID.

archive_boardB

Archive a board by UUID.

unarchive_boardB

Unarchive a board by UUID.

list_tagsA

List tags across every board you can access. Tags belong to boards, so the same name on two boards is two different tags — each item carries its board. For one board use list_board_tags.

create_board_tagA

Add a tag to a board's vocabulary. Tags live on the board and are shared by everyone on it. Usually you don't need this: create_task/update_task tag_names create missing tags by themselves.

Prompts

Interactive templates invoked by user choice

NameDescription
create_task_from_prDraft a well-scoped task from pull request context
triage_board_backlogSuggest a backlog triage sequence for one board

Resources

Contextual data attached and managed by the client

NameDescription
board_config_schemaBoard config schema and permission keys
task_mutation_schemaExpected MCP args for task create/update tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gonnagetapower/kelvia-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server