Task API Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables configuration through environment variables to set API credentials, base URLs, and server ports for connecting to external task management services.

  • Supports browser-based clients through CDN-delivered MCP SDK, enabling web applications to connect to the task management server.

  • Supports running as a Node.js application in either STDIO mode for CLI/AI agent integration or HTTP+SSE mode for web-based access.

タスク API サーバー - MCP TypeScript 実装

TypeScriptで記述されたタスク管理APIのモデルコンテキストプロトコル(MCP)実装。このプロジェクトは、リファレンス実装と機能的なタスク管理サーバーの両方として機能します。

概要

このMCPサーバーは外部のTask APIサービスに接続し、タスク管理のための標準化されたインターフェースを提供します。2つのランタイムモードをサポートしています。

  1. STDIO モード: CLI ベースのアプリケーションと AI エージェントの標準入出力通信
  2. HTTP+SSE モード: ブラウザおよび HTTP ベースのクライアント向けの Server-Sent Events を備えた Web アクセス可能なサーバー

サーバーは、タスク管理操作、広範な検証、および堅牢なエラー処理の完全なセットを提供します。

特徴

  • タスク管理操作:
    • フィルタリング機能を使用して既存のタスクを一覧表示する
    • カスタマイズ可能なプロパティを持つ新しいタスクを作成する
    • タスクの詳細(説明、ステータス、カテゴリ、優先度)を更新します
    • 完了または不要になったらタスクを削除する
  • デュアルインターフェースモード:
    • コマンドラインと AI エージェントの統合のための STDIO プロトコルのサポート
    • ブラウザベースのアクセスのためのWebインターフェースを備えたHTTP + SSEプロトコル
  • MCPプロトコル実装:
    • モデルコンテキストプロトコルの完全な実装
    • タスクデータ構造のリソース
    • タスク操作のためのツール
    • エラー処理と情報メッセージ
  • 品質保証
    • 検証のための包括的なテストクライアント
    • テスト完了後の自動サーバーシャットダウン
    • APIレスポンスの詳細な検証

はじめる

前提条件

  • Node.js 16.x 以上
  • npm または pnpm パッケージマネージャー

インストール

  1. リポジトリをクローンします。
    git clone https://github.com/yourusername/mcp-template-ts.git cd mcp-template-ts
  2. 依存関係をインストールします:
    npm install
    またはpnpmを使用します:
    pnpm install
  3. Task API 資格情報を使用して.envファイルを作成します。
    TASK_MANAGER_API_BASE_URL=https://your-task-api-url.com/api TASK_MANAGER_API_KEY=your_api_key_here TASK_MANAGER_HTTP_PORT=3000
  4. プロジェクトをビルドします。
    npm run build

サーバーの実行

STDIO モード (CLI/AI 統合用)

npm start

または

node dist/index.js

HTTP モード (Web アクセス用)

npm run start:http

または

node dist/http-server.js

デフォルトでは、HTTP サーバーはポート 3000 で実行されます。TASK_MANAGER_HTTP_PORT 環境変数TASK_MANAGER_HTTP_PORT設定することでこれを変更できます。

テスト

包括的なテスト スイートを実行して機能を検証します。

npm test

これにより、次のようになります。

  1. プロジェクトを構築する
  2. サーバーインスタンスを起動する
  3. テストクライアントをサーバーに接続する
  4. すべてのタスク操作を実行する
  5. 正しい回答を確認する
  6. サーバーを自動的にシャットダウンする

MCPクライアントの使用

STDIOクライアント

アプリケーションから STDIO サーバーに接続するには:

import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; import * as path from 'path'; // Create transport const transport = new StdioClientTransport({ command: 'node', args: [path.resolve('path/to/dist/index.js')] }); // Initialize client const client = new Client( { name: "your-client-name", version: "1.0.0" }, { capabilities: { prompts: {}, resources: {}, tools: {} } } ); // Connect to server await client.connect(transport); // Example: List all tasks const listTasksResult = await client.callTool({ name: "listTasks", arguments: {} }); // Example: Create a new task const createTaskResult = await client.callTool({ name: "createTask", arguments: { task: "Complete project documentation", category: "Documentation", priority: "high" } }); // Clean up when done await client.close();

HTTPクライアント

ブラウザから HTTP サーバーに接続するには:

<!DOCTYPE html> <html> <head> <title>Task Manager</title> <script type="module"> import { Client } from 'https://cdn.jsdelivr.net/npm/@modelcontextprotocol/sdk/dist/esm/client/index.js'; import { SSEClientTransport } from 'https://cdn.jsdelivr.net/npm/@modelcontextprotocol/sdk/dist/esm/client/sse.js'; document.addEventListener('DOMContentLoaded', async () => { // Create transport const transport = new SSEClientTransport('http://localhost:3000/mcp'); // Initialize client const client = new Client( { name: "browser-client", version: "1.0.0" }, { capabilities: { prompts: {}, resources: {}, tools: {} } } ); // Connect to server await client.connect(transport); // Now you can use client.callTool() for tasks }); </script> </head> <body> <h1>Task Manager</h1> <!-- Your interface elements here --> </body> </html>

利用可能なツール

タスク一覧

利用可能なすべてのタスクを一覧表示します。

const result = await client.callTool({ name: "listTasks", arguments: { // Optional filters status: "pending", // Filter by status category: "Work", // Filter by category priority: "high" // Filter by priority } });

タスク作成

新しいタスクを作成します。

const result = await client.callTool({ name: "createTask", arguments: { task: "Complete the project report", // Required: task description category: "Work", // Optional: task category priority: "high" // Optional: low, medium, high } });

タスクの更新

既存のタスクを更新します。

const result = await client.callTool({ name: "updateTask", arguments: { taskId: 123, // Required: ID of task to update task: "Updated task description", // Optional: new description status: "done", // Optional: pending, started, done category: "Personal", // Optional: new category priority: "medium" // Optional: low, medium, high } });

タスクの削除

タスクを削除します。

const result = await client.callTool({ name: "deleteTask", arguments: { taskId: 123 // Required: ID of task to delete } });

環境変数

変数説明デフォルト
タスクマネージャーAPIベースURL外部タスク API の URLなし(必須)
タスクマネージャーAPIキー認証用のAPIキーなし(必須)
タスクマネージャーHTTPポートHTTPサーバーのポート3000
ポート代替ポート名(優先)なし

プロジェクト構造

mcp-template-ts/ ├── dist/ # Compiled JavaScript files ├── src/ # TypeScript source files │ ├── index.ts # STDIO server entry point │ ├── http-server.ts # HTTP+SSE server entry point │ ├── test-client.ts # Test client implementation ├── .env # Environment variables ├── package.json # Project dependencies ├── tsconfig.json # TypeScript configuration └── README.md # Project documentation

発達

  1. TypeScript コンパイラをウォッチ モードで起動します。
    npm run watch
  2. 変更を確認するためにテストを実行します。
    npm test

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

謝辞

  • このプロジェクトはMCPプロトコル実装に@modelcontextprotocol/sdkを使用します
  • AIツールやWebアプリケーションとの統合用に構築

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

タスク管理用の標準化されたインターフェースを提供するモデル コンテキスト プロトコル実装。CLI/AI アプリケーションの STDIO モードとブラウザベースのクライアントの HTTP+SSE モードの両方をサポートします。

  1. Overview
    1. Features
      1. Getting Started
        1. Prerequisites
        2. Installation
        3. Running the Server
        4. Testing
      2. Using the MCP Client
        1. STDIO Client
        2. HTTP Client
      3. Available Tools
        1. listTasks
        2. createTask
        3. updateTask
        4. deleteTask
      4. Environment Variables
        1. Project Structure
          1. Development
            1. License
              1. Acknowledgments
                ID: u9w7rmq11d