LiteMCP について
LiteMCP は、ツール、リソース、プロンプトを簡潔な API で定義して MCP サーバーを構築する TypeScript フレームワークです。ログ出力、エラー処理、テスト用のコマンドラインツールを内蔵しています。作者は公式 SDK に類似の高レベル API があるとして、現在は保守していないと明記しています。
主な機能
- 01ツール、リソース、プロンプトの簡潔な定義方法
- 02TypeScript の完全な型サポート
- 03ログ出力とエラー処理の内蔵
- 04コマンドラインによるデバッグと Inspector の起動
- 05stdio と SSE トランスポートへの対応
活用シーン
- 01TypeScript による MCP サーバーのプロトタイプ作成
- 02ターミナルからの MCP サーバーのテストとデバッグ
- 03MCP サーバーへの SSE トランスポートの追加
MCP 対応
ツール、リソース、プロンプトを MCP クライアントに公開する MCP サーバーの開発に使用されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LiteMCP
MCP(Model Context Protocol)サーバーを簡潔に構築するための TypeScript フレームワークです
非推奨のお知らせ:
公式 SDK には、このプロジェクトと同様の高レベル API がすでに用意されているため、このプロジェクトのメンテナンスは終了します。
このプロジェクトの CLI コマンドを使いたい場合は、単独で利用できます:https://github.com/wong2/mcp-cli
特長
- シンプルなツール、リソース、プロンプトの定義
- TypeScript を全面的にサポート
- ロギングを内蔵
- エラー処理を内蔵
- テストとデバッグ用の CLI を内蔵
- SSE トランスポートを標準でサポート
インストール
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 ライブラリ。このプロジェクトの着想元
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。