otask-mcp-server
Allows n8n workflows to interact with O!task tasks using MCP Client Tool, providing tools to get and update tasks via the O!task API.
Click on "Install 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., "@otask-mcp-serverGet task with slug 'task-123' in workspace 'ws-abc'."
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.
otask-mcp-server
MCP-сервер для O!task API.
Режимы запуска
Режим | Команда | Клиент |
MCP stdio |
| Cursor / OpenCode |
MCP Streamable HTTP |
| n8n MCP Client Tool |
Related MCP server: Freelo MCP Server
Аутентификация HTTP (/mcp)
Всегда через заголовок Authorization: Bearer … от HTTP-клиента. Два сценария:
1. Gateway (серверные credentials в env)
Сервер сам ходит в O!task API. Endpoint нельзя оставлять открытым.
OTASK_AUTH_KEY=... # или OTASK_EMAIL + OTASK_PASSWORD
MCP_AUTH_TOKEN=... # обязателен в gateway-режимеКлиент (n8n):
Authorization: Bearer <MCP_AUTH_TOKEN>2. Passthrough (без OTASK_* в env)
Сервер не хранит credentials O!task. Bearer клиента пробрасывается в api.otask.ru.
# OTASK_* не заданыКлиент (n8n):
Authorization: Bearer <O!task token>Тот же токен, что для прямых вызовов O!task API.
Stdio (локально)
Только gateway-логика через env (без MCP_AUTH_TOKEN):
OTASK_AUTH_KEY=...
# или OTASK_EMAIL + OTASK_PASSWORDMCP HTTP endpoint
URL |
|
Health |
|
Порт |
|
n8n MCP Client Tool
URL:
https://otask-mcp.grigoreo.dev/mcpTransport: HTTP Streamable
Gateway: credential с
MCP_AUTH_TOKENPassthrough: credential с O!task Bearer (как в workflow 009)
Tools: otask_get_task, otask_update_task.
Добавление нового tool
src/services/api.ts— низкоуровневый fetch (если нужен новый endpoint)src/services/client.ts— метод наOtaskClient(bind auth уже внутри)src/schemas/— Zod-схема входных параметровsrc/tools/my-tool.ts— фабрикаcreateMyTool({ api })→ToolDefinitionsrc/tools/registry.ts— одна строка в массивtoolFactories
Пример скелета:
// src/tools/my-tool.ts
import { MyInputSchema, type MyInput } from "../schemas/my.js";
import { jsonToolResult, toolError } from "./helpers.js";
import type { ToolDefinition, ToolDeps } from "./types.js";
export function createMyTool({ api }: ToolDeps): ToolDefinition<MyInput> {
return {
name: "otask_my_tool",
config: {
title: "...",
description: "...",
inputSchema: MyInputSchema,
annotations: { readOnlyHint: true },
},
handler: async (input) => {
try {
const data = await api.myMethod(input);
return jsonToolResult(data);
} catch (error) {
return toolError(error);
}
},
};
}server.ts и register.ts трогать не нужно — регистрация централизована.
Разработка
bun install && bun run build
bun start # stdio
bun run dev:http # HTTP hot reloadMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/grigoreo-dev/otask-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server