Othos MCP
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Othos MCP List my organizations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Othos MCP
@othos-io/othos-mcp is a Model Context Protocol (MCP) server for the Othos Platform. It lets AI coding agents and MCP clients authenticate with Othos and work directly with organizations, projects, columns, and tickets.
This package is designed for two main use cases:
Local
stdiousage with coding agents such as Codex, Claude Code, and Cursor.Remote Streamable HTTP deployments protected by OAuth bearer tokens.
Choose The Right Setup
For most new users, the correct setup is the local stdio package installed
with add-mcp.
Use local stdio when:
you are installing the MCP into Codex, Cursor, Claude Code, or a similar desktop coding agent
you want to use
othos_auth_connectyou want the MCP process to open a localhost callback and finish auth on your machine
Use the remote HTTP endpoint only when:
your MCP client already supports transport-level OAuth or bearer auth for remote MCP servers
you already know how the client will obtain and attach the Authorization header for
https://mcp.othos.com.br/mcp
If you are unsure, use local stdio.
Related MCP server: mcp-kaneo
What This Server Can Do
Authenticate to Othos with a browser-based OAuth flow, a bearer token, or cookie-based session auth.
Inspect the current authentication state and active organization context.
List, create, update, and delete projects and columns.
List, create, update, move, assign, unassign, and delete tickets.
Return ticket data in an agent-friendly fixed text template when you want clean chat output.
Run either as a local MCP server over
stdioor as a deployed MCP server over HTTP.
Getting Started
Install with add-mcp
Install the MCP server for all detected coding agents in the current project:
npx add-mcp @othos-io/othos-mcp@latestAdd -y to skip prompts and -g to install globally.
Manual installation
If your MCP client expects a manual config, use:
{
"mcpServers": {
"othos-mcp": {
"command": "npx",
"args": ["-y", "@othos-io/othos-mcp@latest"]
}
}
}Codex CLI
codex mcp add othos-mcp -- npx -y @othos-io/othos-mcp@latestThis is the recommended path for a new user.
Quick Start
For local stdio usage, the recommended flow is:
Install the server in your MCP client.
Start a session and call
othos_auth_connect.Open the returned authorization URL in your browser.
Approve the connection in Othos.
Start using tools such as
othos_organization_list,othos_project_list, andothos_ticket_create.
If you call a protected tool without valid authentication, the server returns an auth-required response that includes the authorization link. After approval in the browser, the local MCP process receives the loopback callback and stores the bearer token automatically.
New User Flow
The intended first-run experience is:
Install the npm package into the MCP client using
add-mcp.Let the MCP client launch the package locally over
stdio.Call
othos_auth_connect.Open the returned browser URL.
Approve access in Othos.
Return to the MCP client and start using organization, project, column, and ticket tools.
The intended first-run experience is not:
connect directly to
https://mcp.othos.com.br/mcpas an unauthenticated HTTP clientexpect
othos_auth_connectto bootstrap auth on that remote transport
That remote path requires transport-level auth before the MCP session is even available.
Authentication
Recommended: browser authorization
othos_auth_connect starts a local OAuth authorization flow and is the best default for local MCP usage.
It can:
Open a browser-based approval flow.
Listen on a localhost callback URL for the browser redirect.
Exchange the authorization code for an Othos bearer token.
Persist the token to disk automatically.
By default, local stdio sessions save the token to:
$XDG_CONFIG_HOME/othos-mcp/personal-token, or$HOME/.config/othos-mcp/personal-token
You can override that with OTHOS_PERSONAL_TOKEN_PATH or the savePath argument.
Direct personal token
If you already have a bearer token, you can provide it directly:
export OTHOS_PERSONAL_TOKEN="othos_pat_v1...."You can also set it from inside the MCP session with othos_auth_set_personal_token.
When a bearer token is available, the server sends it to the Othos API as:
Authorization: Bearer <token>Cookie-based compatibility
Cookie-based auth is still supported for compatibility:
OTHOS_ACCESS_COOKIEOTHOS_ACCESS_TOKENothos_auth_set_cookieothos_auth_loginothos_auth_login_with_personal_token
For new setups, prefer othos_auth_connect or OTHOS_PERSONAL_TOKEN.
Example Prompts
Once connected, your agent can handle prompts like:
Check my Othos authentication status.List my organizations and tell me which one is active.Switch to organization 8f2d...Show me the projects in my current organization.Create a project called Website Redesign.List the columns for project 2c6a...Create a high-priority ticket called Fix OAuth redirect in column 91d4...Move ticket 4a7f... to column c12e...Show ticket 77b2... using the template format.
MCP Tools
The server currently exposes the following tool groups.
Authentication
othos_auth_statuschecks whether the server currently has valid auth configured.othos_auth_connectstarts browser-based authorization and stores the returned bearer token.othos_auth_set_cookiesets auth manually using a cookie or raw access token.othos_auth_set_personal_tokensets a bearer token and can persist it locally.othos_auth_login_with_personal_tokenvalidates and stores a bearer token for API use.othos_auth_loginsigns in with email and password.othos_auth_logoutclears the current auth session.othos_auth_create_personal_tokencurrently returns a compatibility error because the legacy API endpoint is gone.othos_auth_revoke_personal_tokencurrently returns a compatibility error because the legacy API endpoint is gone.
Organizations
othos_organization_listlists organizations available to the authenticated user.othos_organization_currentreturns the current active organization.othos_organization_changeswitches the active organization context.
Projects
othos_project_listothos_project_getothos_project_createothos_project_updateothos_project_deleteothos_project_membersothos_project_assign_memberothos_project_unassign_member
Columns
othos_column_listothos_column_createothos_column_updateothos_column_delete
Tickets
othos_ticket_list_by_columnothos_ticket_list_by_column_templateothos_ticket_getothos_ticket_get_templateothos_ticket_createothos_ticket_updateothos_ticket_moveothos_ticket_deleteothos_ticket_assign_memberothos_ticket_unassign_member
The*_template ticket tools return a fixed, chat-friendly text format that is useful when you want consistent summaries instead of raw JSON.
HTTP Transport with OAuth
Besides local stdio mode, the package can run as a Streamable HTTP MCP server protected by OAuth bearer tokens.
Start the server in HTTP mode:
OTHOS_MCP_TRANSPORT=http \
MCP_HOST=127.0.0.1 \
MCP_PORT=8787 \
node dist/index.js --httpIn HTTP mode:
clients connect to
http://127.0.0.1:8787/mcpbearer authentication is required on the MCP transport
tokens are validated through the Othos introspection endpoint
the local
othos_auth_*helper tools are disabled because auth is handled by the MCP OAuth flowthe server requires the
mcp:toolsscope
For the published remote server at https://mcp.othos.com.br/mcp, a fresh
unauthenticated client should expect the transport to reject the connection
until it provides a valid bearer token. This is expected behavior.
Example unauthenticated remote behavior:
{
"error": "invalid_token",
"error_description": "Missing Authorization header"
}Environment Variables
API and auth
OTHOS_API_URL: Othos API base URL. Defaults tohttps://api.othos.com.br/api/v1.NEXT_PUBLIC_API_URL: fallback API base URL whenOTHOS_API_URLis not set.OTHOS_PERSONAL_TOKEN: Othos bearer token used as API auth.OTHOS_PERSONAL_TOKEN_PATH: absolute path used to load or persist a bearer token. If unset, local stdio mode falls back to$XDG_CONFIG_HOME/othos-mcp/personal-tokenor$HOME/.config/othos-mcp/personal-token.OTHOS_ACCESS_COOKIE: existing Othos cookie header for compatibility mode.OTHOS_ACCESS_TOKEN: existing access token. Non-PAT values are treated as cookie auth.
HTTP transport
OTHOS_MCP_TRANSPORT: set tohttpto enable Streamable HTTP mode.MCP_HOST: HTTP bind host. Defaults to127.0.0.1.MCP_PORT: HTTP bind port. Defaults to8787.OTHOS_OAUTH_RESOURCE_METADATA_URL: OAuth protected resource metadata URL.OTHOS_OAUTH_INTROSPECTION_URL: OAuth token introspection URL.
Local Development
Clone the repository and run:
pnpm install
pnpm build
pnpm typecheck
pnpm startFor development builds:
pnpm devRepository
package name:
@othos-io/othos-mcpsource: othos-io/othos-mcp-server
Available Tools
34 toolsothos_auth_connectB
Start browser-based authorization, poll for approval, and store the returned MCP personal token.
Inputs: waitForApprovalSeconds, savePath, clientName, scope, +2 more.
othos_auth_create_personal_tokenB
Generate or rotate an MCP personal token from API and optionally save it to disk.
Inputs: lifetimeDays, savePath.
othos_auth_loginA
Login to Othos with email/password. Stores the returned othos-accessToken cookie in memory.
Inputs: email (required), password (required).
othos_auth_login_with_personal_tokenA
Create a cookie session using an Othos personal token (PAT).
Inputs: token, tokenPath.
othos_auth_logoutA
Logout from Othos and clear auth cookie from this MCP process.
Inputs: no named parameters.
othos_auth_revoke_personal_tokenB
Revoke the current MCP personal token in API.
Inputs: no named parameters.
othos_auth_set_cookieB
Set auth manually using either a full cookie string or a raw access token.
Inputs: cookie, accessToken.
othos_auth_set_personal_tokenC
Set a personal access token (PAT) for Othos and optionally persist it to disk.
Inputs: token (required), savePath.
othos_auth_statusA
Check whether this MCP server has an Othos auth cookie and/or MCP personal token configured.
Inputs: no named parameters.
othos_column_createC
Create a column in a project.
Inputs: projectId (required), name (required).
othos_column_deleteC
Delete a column.
Inputs: columnId (required).
othos_column_listC
List columns for a project.
Inputs: projectId (required).
othos_column_updateC
Update a column's name or order.
Inputs: id (required), projectId (required), name (required), order (required).
othos_organization_changeA
Change active organization context. Required when an account has multiple organizations.
Inputs: organizationId (required).
othos_organization_currentA
Get current active organization for the authenticated user.
Inputs: no named parameters.
othos_organization_listA
List organizations available for the authenticated user.
Inputs: no named parameters.
othos_project_assign_memberC
Assign an existing member to a project.
Inputs: projectId (required), memberId (required).
othos_project_createC
Create a new project.
Inputs: name (required).
othos_project_deleteC
Delete a project by ID.
Inputs: projectId (required).
othos_project_getB
Get a project by its ID.
Inputs: projectId (required).
othos_project_listA
List projects for the current active organization.
Inputs: no named parameters.
othos_project_membersC
List members assigned to a project.
Inputs: projectId (required).
othos_project_unassign_memberB
Remove a member from a project.
Inputs: projectId (required), memberId (required).
othos_project_updateC
Update a project name.
Inputs: projectId (required), name (required).
othos_ticket_assign_memberC
Assign a member to a ticket.
Inputs: ticketId (required), memberId (required).
othos_ticket_createB
Create a ticket in a column. Description may be TipTap JSON, Markdown, or plain text; the MCP always converts it to serialized TipTap JSON before sending it to the API.
Inputs: title (required), columnId (required), description, priority, +4 more.
othos_ticket_deleteC
Delete a ticket.
Inputs: ticketId (required).
othos_ticket_getB
Get one ticket by ID using the fixed chat template format.
Inputs: ticketId (required), summaryMaxLength.
othos_ticket_get_templateC
Get one ticket by ID and render it with the fixed chat template format.
Inputs: ticketId (required), summaryMaxLength.
othos_ticket_list_by_columnC
List tickets from a column using the fixed chat template format.
Inputs: columnId (required), summaryMaxLength.
othos_ticket_list_by_column_templateC
List tickets from a column using a fixed chat template: title, priority, id, status, assignees, due date, and summary.
Inputs: columnId (required), summaryMaxLength.
othos_ticket_moveA
Move a ticket to another column/order while preserving title, description, priority and due date.
Inputs: ticketId (required), targetColumnId (required), targetOrder.
othos_ticket_unassign_memberB
Remove a member assignment from a ticket.
Inputs: ticketId (required), memberId (required).
othos_ticket_updateB
Update a ticket's details. Description may be TipTap JSON, Markdown, or plain text; the MCP always converts it to serialized TipTap JSON before sending it to the API.
Inputs: ticketId (required), title (required), columnId (required), order (required), +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 34 tools
Tools are grouped by resource and have distinct actions, but there is some overlap between `ticket_get` and `ticket_get_template`, and `ticket_list_by_column` and `ticket_list_by_column_template`. The descriptions clarify the differences, so only minor ambiguity.
All tools follow a consistent `othos_{resource}_{action}` pattern using snake_case, making it predictable and easy to understand.
With 34 tools covering auth, organizations, columns, projects, and tickets, the count is on the higher side but still reasonable for a full-featured project management API. No excessive bloat.
The toolset covers core CRUD operations for all major resources and supports authentication flows. Minor gaps exist, such as lack of ticket search/filter options beyond column listing, but essential workflows are complete.
Maintenance
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Headless task management for bots, apps and AI agents. Remote MCP server, OAuth or access token.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP Server for AI agent identity and authorization. Create, verify, and manage agent identities with trust scores and scoped authorization tokens.48 PyPIMIT
- AlicenseBqualityBmaintenanceMCP server for Kaneo task management API. Lets your AI coding assistant manage tasks, projects, labels, and comments in Kaneo.119 npm5MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Atlassian Cloud (Confluence & Jira) with seamless OAuth 2.0 authentication. Enables AI agents to document work in Confluence, manage Jira issues, and understand project context.4MIT
- FlicenseNot gradedqualityDmaintenanceA production-ready MCP server that authenticates agents via OAuth 2.1 Bearer tokens, validates JWTs with JWKS, enforces tool-level scopes and roles, and logs the full delegation chain.-