mcpField
L
LiteMCP

LiteMCP

ローカル
github.com/wong2開発ツール18679 週間前に更新

LiteMCP について

LiteMCP は、ツール、リソース、プロンプトを簡潔な API で定義して MCP サーバーを構築する TypeScript フレームワークです。ログ出力、エラー処理、テスト用のコマンドラインツールを内蔵しています。作者は公式 SDK に類似の高レベル API があるとして、現在は保守していないと明記しています。

主な機能

  1. 01ツール、リソース、プロンプトの簡潔な定義方法
  2. 02TypeScript の完全な型サポート
  3. 03ログ出力とエラー処理の内蔵
  4. 04コマンドラインによるデバッグと Inspector の起動
  5. 05stdio と SSE トランスポートへの対応

活用シーン

  1. 01TypeScript による MCP サーバーのプロトタイプ作成
  2. 02ターミナルからの MCP サーバーのテストとデバッグ
  3. 03MCP サーバーへの SSE トランスポートの追加

MCP 対応

ツール、リソース、プロンプトを MCP クライアントに公開する MCP サーバーの開発に使用されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"litemcp": {
"command": "npx",
"args": [
"-y",
"litemcp"
]
}
}
}
起動コマンドnpx -y litemcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmlitemcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LiteMCP

MCP(Model Context Protocol)サーバーを簡潔に構築するための TypeScript フレームワークです

非推奨のお知らせ:

公式 SDK には、このプロジェクトと同様の高レベル API がすでに用意されているため、このプロジェクトのメンテナンスは終了します。

このプロジェクトの CLI コマンドを使いたい場合は、単独で利用できます:https://github.com/wong2/mcp-cli

特長

インストール

npm install litemcp zod

クイックスタート

import { LiteMCP } from "litemcp";
import { z } from "zod";

const server = new LiteMCP("demo", "1.0.0");

server.addTool({
  name: "add",
  description: "Add two numbers",
  parameters: z.object({
    a: z.number(),
    b: z.number(),
  }),
  execute: async (args) => {
    return args.a + args.b;
  },
});

server.addResource({
  uri: "file:///logs/app.log",
  name: "Application Logs",
  mimeType: "text/plain",
  async load() {
    return {
      text: "Example log content",
    };
  },
});

server.start();

次のコマンドを使って、ターミナルでサーバーをテストできます。

npx litemcp dev server.js

主なコンセプト

ツール

MCP のツールを使うと、サーバーはクライアントから呼び出せる実行可能な関数を公開し、LLM がアクションを実行するために利用できます。

server.addTool({
  name: "fetch",
  description: "Fetch the content of a url",
  parameters: z.object({
    url: z.string(),
  }),
  execute: async (args) => {
    const content = await fetchWebpageContent(args.url);
    return content;
  },
});
リソース

リソースとは、MCP サーバーがクライアントに提供するあらゆる種類のデータです。次のようなものがあります。

  • ファイルの内容
  • スクリーンショットや画像
  • ログファイル
  • その他

各リソースは一意の URI で識別され、テキストデータまたはバイナリデータを含めることができます。

server.addResource({
  uri: "file:///logs/app.log",
  name: "Application Logs",
  mimeType: "text/plain",
  async load() {
    return {
      text: await readLogFile(),
    };
  },
});

load からバイナリデータを返すこともできます。

async load() {
  return {
    blob: 'base64-encoded-data'
  }
}
プロンプト

プロンプトを使うと、サーバーで再利用可能なプロンプトテンプレートやワークフローを定義し、クライアントからユーザーや LLM に簡単に提示できます。LLM との一般的なやり取りを標準化し、共有するための強力な手段です。

server.addPrompt({
  name: "git-commit",
  description: "Generate a Git commit message",
  arguments: [
    {
      name: "changes",
      description: "Git diff or description of changes",
      required: true,
    },
  ],
  load: async (args) => {
    return `Generate a concise but descriptive commit message for these changes:\n\n${args.changes}`;
  },
});
ロギング

server.logger を使って、クライアントにログメッセージを送信できます。

server.addTool({
  name: "download",
  description: "Download a file from a url",
  parameters: z.object({
    url: z.string(),
  }),
  execute: async (args) => {
    server.logger.info("Downloading file", { url: args.url });
    // ...
    server.logger.info("Downloaded file", { url: args.url });
    return response;
  },
});

logger オブジェクトには、次のメソッドがあります。

  • debug(message: string, context?: JsonValue)
  • info(message: string, context?: JsonValue)
  • warn(message: string, context?: JsonValue)
  • error(message: string, context?: JsonValue)

サーバーの実行

mcp-cli によるデバッグ

サーバーのテストとデバッグを最も手早く行うには、mcp-cli を使います。

npx litemcp dev server.js
npx litemcp dev server.ts // ts files are also supported

このコマンドは mcp-cli を使ってサーバーを実行し、ターミナルで MCP サーバーをテストおよびデバッグします。

MCP Inspector での検査

別の方法として、公式の MCP Inspector を使い、Web UI でサーバーを検査できます。

npx litemcp inspect server.js
SSE トランスポート

サーバーはデフォルトで stdio トランスポートを使って実行されます。SSE モードでサーバーを実行することもできます。

server.start({
  transportType: "sse",
  sse: {
    endpoint: "/sse",
    port: 8080,
  },
});

これによりサーバーが起動し、http://localhost:8080/sse で SSE 接続を待ち受けます。

その後、クライアントで SSE トランスポートを使ってサーバーに接続できます。

活用例

LiteMCP を使ってサーバーを開発した場合は、ぜひ PR を送ってここで紹介してください!

ロードマップ

  • リソーステンプレートのサポートを追加

関連項目

  • mcp-cli - MCP サーバーのテストとデバッグ用 CLI
  • mcpservers.org - 厳選された MCP サーバーの一覧
  • FastMCP - MCP サーバー開発用の Python ライブラリ。このプロジェクトの着想元

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。