🚀 Thoth MCP Server
Thoth MCP Serverは、Thothコンテンツ作成プラットフォームのためのModel Context Protocol (MCP) サーバです。このサーバを使用すると、AIアシスタントやツールがThothのAPIを通じてコンテンツを作成および取得できます。
✨ 新機能: Claude Code Pluginが利用可能になりました!スラッシュコマンドと専用のAIエージェントを使って、コンテンツ作成ワークフローを効率化します!
🚀 クイックスタート
npx @usethoth/mcp-server --api-key YOUR_API_KEY
APIキーはapp.usethoth.com/settings/api-keysで取得できます。
✨ 主な機能
- コンテンツ作成: AIによる強化機能を使って、プラットフォームに最適化されたコンテンツを生成します。
- 投稿の取得と管理: ページネーション機能を使って、投稿データを取得、一覧表示、更新します。
- 多プラットフォーム対応: Twitter、Instagram、LinkedIn、Facebook、Threads、ブログ、Redditに対応しています。
- ブランドスタイル: ブランドプリセットを使って、一貫したボイス、トーン、ビジュアルスタイルを適用します。
- 画像生成: コンテンツに画像をオプションで生成します。
- スケジューリング: 投稿を将来の日時に予約することができます。
- デュアルトランスポート: stdio(ローカル)とHTTPトランスポート(Smithery/クラウドデプロイメント)の両方をサポートします。
- 型安全: TypeScriptとZodバリデーションを使って構築されています。
📦 Claude Code Plugin
新機能! 使いやすいコマンドと専用のAIエージェントを備えた公式のClaude Codeプラグインを作成しました。これにより、ソーシャルメディアコンテンツの作成がさらに簡単になります。
概要
ThothのClaude Codeプラグインは以下の機能を提供します。
- 5つのスラッシュコマンド: 一般的なワークフローにすばやくアクセスできます。
/create-content - AIのガイダンスを受けながら、多プラットフォーム用の投稿を作成します。
/schedule-post - 最適なエンゲージメントタイミングで投稿を予約します。
/view-brands - ブランドスタイルを閲覧および管理します。
/manage-posts - すべての投稿を一覧表示、フィルタリング、管理します。
/preview-post - プラットフォーム固有のコンテンツフォーマットをプレビューします。
- 3つの専用エージェント: 特定のタスクに特化したエキスパートAIアシスタントです。
- Content Creator - 魅力的でプラットフォームに最適化されたコンテンツを作成するのが得意です。
- Brand Manager - すべてのプラットフォームでブランドの一貫性を保証します。
- Social Media Optimizer - データ駆動型の戦略を使って、リーチとエンゲージメントを最大化します。
プラグインのクイックスタート
claude plugin install thoth
export THOTH_API_KEY="your-api-key-here"
claude /create-content "Announcing our new feature"
claude "Content Creator, help me announce our product launch"
ドキュメント
プラグインの完全なドキュメント、インストール手順、および使用例は、claude-code-pluginディレクトリにあります。
claude-code-plugin/README.mdを参照してください。
- 詳細なインストール手順
- 完全なコマンドリファレンス
- エージェントの使用ガイド
- 高度なワークフローと使用例
- トラブルシューティングのヒント
📦 インストール
MCPレジストリ経由(推奨)
サーバは公式のMCPレジストリにio.github.zeiq-co/thoth-mcpとして公開されています。
レジストリのWebインターフェイスから閲覧してインストールするか、MCPクライアントで直接設定してください(下記のMCPクライアントの設定を参照)。
Smithery経由(ゼロセットアップのデプロイメント)
Smitheryを通じて始めるのが最も簡単です。以下の機能を提供します。
- ワンクリックインストール - ローカルの依存関係や設定は不要です。
- 自動更新 - 常に最新バージョンを使用できます。
- 安全なホスティング - APIキーが安全に管理されます。
- インタラクティブなプレイグラウンド - ツールを使用する前にテストできます。
Smitheryからインストールするには、以下の手順を実行します。
- Smithery上のThoth MCP Serverにアクセスします。
- 「インストール」をクリックします。
- 求められたら、ThothのAPIキーを入力します。
- Claude Desktopまたは他のMCPクライアントですぐに使用を開始できます。
グローバルインストール(npx経由)
npx @usethoth/mcp-server --api-key YOUR_API_KEY
ローカル開発
git clone https://github.com/perminder-klair/thoth-mcp.git
cd thoth-mcp
pnpm install
pnpm build
💻 使用例
前提条件
ThothのAPIキーが必要です。以下の場所で生成できます。
サーバの起動
Stdioモード(ローカル)
これはClaude DesktopのようなMCPクライアントで使用するためのデフォルトモードです。
npx @usethoth/mcp-server --api-key YOUR_API_KEY
またはMCPインスペクターでデバッグするには、以下のコマンドを実行します。
npx @modelcontextprotocol/inspector npx @usethoth/mcp-server --api-key YOUR_API_KEY
カスタムベースURLを使用する場合は、以下のようにします。
npx @usethoth/mcp-server \
--api-key YOUR_API_KEY \
--base-url https://app.usethoth.com
リモートHTTPサーバモード
クラウドデプロイメント(Smitheryなど)またはHTTP経由でサーバを公開する場合は、HTTPモードでサーバを実行します。
npx @usethoth/mcp-server --remote --api-key YOUR_API_KEY
サーバはポート8081(PORT環境変数で設定可能)でHTTPサーバを起動します。以下のエンドポイントが用意されています。
/mcp - メインのMCPエンドポイント(POST)
/health - ヘルスチェックエンドポイント(GET)
カスタム設定を使用する場合は、以下のようにします。
PORT=3000 npx @usethoth/mcp-server \
--remote \
--api-key YOUR_API_KEY \
--base-url https://app.usethoth.com
注意: HTTPモードでは、サーバはMCP Streamable HTTP transportを実装し、ブラウザベースのクライアント用に適切なCORS設定がされています。
環境変数
コマンドラインフラグの代わりに、環境変数を使用することもできます。
stdioモードの場合:
export THOTH_API_KEY=your_api_key
export THOTH_BASE_URL=http://localhost:3000
npx @usethoth/mcp-server
HTTPモードの場合:
export THOTH_API_KEY=your_api_key
export THOTH_BASE_URL=https://www.usethoth.com
export PORT=8081
npx @usethoth/mcp-server --remote
利用可能な環境変数は以下の通りです。
THOTH_API_KEY - ThothのAPIキー(stdioモードのみ;HTTPモードではクエリパラメータを使用)
THOTH_BASE_URL - Thoth APIのベースURL(デフォルト: https://www.usethoth.com)
PORT - HTTPサーバのポート(HTTPモードのみ、デフォルト: 8081)
📚 MCPクライアントの設定
Claude Desktop
Claude Desktopの設定ファイルに追加します。
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"thoth": {
"command": "npx",
"args": [
"@usethoth/mcp-server",
"--api-key",
"YOUR_API_KEY",
"--base-url",
"http://localhost:3000"
]
}
}
}
その他のMCPクライアント
stdioトランスポートをサポートする他のMCPクライアントの場合は、適切なコマンドと引数を使用して同様の設定を行います。
📚 利用可能なツール
サーバは、Thothコンテンツを管理するための6つのツールを提供します。
| ツール |
説明 |
create-post |
AIによる強化機能を使って、多プラットフォーム用のコンテンツを作成します。 |
get-post |
IDで特定の投稿を取得します。 |
get-all-posts |
ページネーションとフィルタリング機能を使って、投稿を一覧表示します。 |
update-post |
既存の投稿のタイトル、コンテンツ、またはステータスを更新します。 |
get-brand-styles |
すべての利用可能なブランドスタイルを一覧表示します。 |
get-brand-style |
特定のブランドスタイルの詳細設定を取得します。 |
create-post
プラットフォーム固有のバリエーションを持つ新しいコンテンツ投稿を作成します。
パラメータ:
content (必須): 強化する元のコンテンツ
platforms (必須): ターゲットプラットフォームの配列
- オプション:
twitter, instagram, linkedin, facebook, threads, blog, reddit
length (オプション): コンテンツの長さ - very-short, short, medium, long(デフォルト: medium)
createImage (オプション): 画像を生成する(デフォルト: false)
createHashtags (オプション): ハッシュタグを生成する(デフォルト: true)
scheduleTime (オプション): 投稿を予約するISO 8601形式の日時
postToSocialNetworks (オプション): 接続されたネットワークにすぐに投稿する(デフォルト: false)
brandStyleId (オプション): 適用するブランドスタイルのUUID
例:
{
"content": "Just launched our new AI-powered content creation tool!",
"platforms": ["twitter", "linkedin"],
"length": "medium",
"createImage": true,
"createHashtags": true
}
返り値:
- 投稿ID
- 元のコンテンツ
- プラットフォーム固有の強化コンテンツ
- 要求された場合の生成画像
- 各プラットフォームのハッシュタグ
- ステータスとタイムスタンプ
get-post
投稿のIDで投稿を取得します。
パラメータ:
例:
{
"postId": "123e4567-e89b-12d3-a456-426614174000"
}
返り値:
- 完全な投稿データ
- プラットフォーム固有のコンテンツ
- 生成された画像
- ステータスとメタデータ
get-all-posts
ページネーションとフィルタリング機能を使って、すべての投稿を一覧表示します。
パラメータ:
page (オプション): ページ番号(デフォルト: 1)
limit (オプション): 1ページあたりの投稿数(デフォルト: 10)
status (オプション): ステータスでフィルタリング - draft, scheduled, published
例:
{
"page": 1,
"limit": 20,
"status": "published"
}
返り値:
- メタデータ付きの投稿の配列
- ページネーション情報
- 総数
update-post
既存の投稿を更新します。
パラメータ:
postId (必須): 更新する投稿のUUID
title (オプション): 投稿の新しいタイトル
content (オプション): 新しいコンテンツ
status (オプション): 新しいステータス - draft, scheduled, published
例:
{
"postId": "123e4567-e89b-12d3-a456-426614174000",
"title": "Updated Title",
"status": "published"
}
返り値:
get-brand-styles
アカウントで利用可能なすべてのブランドスタイルを一覧表示します。
パラメータ: なし
返り値:
- IDと名前付きのブランドスタイルの配列
- スタイルのメタデータ
get-brand-style
特定のブランドスタイルの詳細を取得します。
パラメータ:
brandStyleId (必須): ブランドスタイルのUUID
例:
{
"brandStyleId": "123e4567-e89b-12d3-a456-426614174000"
}
返り値:
- ブランドスタイルの名前と説明
- カラーパレット
- タイポグラフィ設定
- トーンとボイスのガイドライン
- 画像の選択基準
📚 利用可能なリソース
post://{postId}
投稿データをMCPリソースとしてアクセスします。
例URI:
post://123e4567-e89b-12d3-a456-426614174000
preview://{postId}/{platform}
プラットフォーム固有のプレビューコンテンツを取得します。
例URI:
preview://123e4567-e89b-12d3-a456-426614174000/twitter
📚 開発
ビルド
pnpm build
ローカルでの実行
pnpm start -- --api-key YOUR_API_KEY
型チェック
pnpm typecheck
開発モード(ウォッチ)
pnpm dev
📚 API統合
MCPサーバはThothのREST APIエンドポイントに接続します。
POST /api/v1/posts - 新しい投稿を作成します。
GET /api/v1/posts/{postId} - 単一の投稿を取得します。
GET /api/v1/posts - ページネーション機能を使って投稿を一覧表示します。
PUT /api/v1/posts/{postId} - 既存の投稿を更新します。
GET /api/v1/brand-styles - ブランドスタイルを一覧表示します。
GET /api/v1/brand-styles/{brandStyleId} - ブランドスタイルの詳細を取得します。
すべてのリクエストには、認証のためのX-API-Keyヘッダーが必要です。
📚 エラーハンドリング
サーバは一般的な問題に対する詳細なエラーメッセージを提供します。
- 無効なAPIキー: APIキーが正しく有効であることを確認してください。
- レート制限超過: 追加のリクエストを行う前に待ってください。
- 投稿が見つからない: 投稿IDが正しいことを確認してください。
- 無効なパラメータ: パラメータの型と形式を確認してください。
- ネットワークエラー: ベースURLとネットワーク接続を確認してください。
💻 使用例
多プラットフォーム投稿の作成
{
"content": "Excited to share our latest feature! \ud83d\ude80 AI-powered content optimization for all your social platforms.",
"platforms": ["twitter", "linkedin", "instagram"],
"length": "medium",
"createImage": true,
"createHashtags": true
}
投稿のスケジューリング
{
"content": "Join us for our product launch next week!",
"platforms": ["twitter", "linkedin"],
"scheduleTime": "2025-10-20T14:00:00Z",
"createImage": true
}
投稿データの取得
{
"postId": "123e4567-e89b-12d3-a456-426614174000"
}
リソースへのアクセス
{
"uri": "post://123e4567-e89b-12d3-a456-426614174000"
}
{
"uri": "preview://123e4567-e89b-12d3-a456-426614174000/twitter"
}
ローカルでのHTTPモードのテスト
HTTPモードでサーバを起動します。
npx @usethoth/mcp-server --remote --api-key YOUR_API_KEY
ヘルスエンドポイントをテストします。
curl http://localhost:8081/health
MCPインスペクターでMCPエンドポイントをテストします。
npx @modelcontextprotocol/inspector http://localhost:8081/mcp?apiKey=YOUR_API_KEY
または、クエリベースの設定をサポートするStreamable HTTP MCPクライアントで使用します。
📚 トラブルシューティング
サーバが起動しない
- Node.js 18以上がインストールされていることを確認してください。
- APIキーが有効であることを確認してください。
- ベースURLが正しくアクセス可能であることを確認してください。
ツール呼び出しが失敗する
- APIキーに必要な権限があることを確認してください。
- レート制限が超過されていないことを確認してください。
- 投稿IDが有効なUUIDであることを確認してください。
- プラットフォーム名が正しくスペルされていることを確認してください。
HTTPモードでアクセスできない
- ポートがすでに使用されていないことを確認してください:
lsof -i :8081(または設定したポート)
- ファイアウォール設定が接続を許可していることを確認してください。
- サーバプロセスが
--remoteフラグで実行されていることを確認してください。
- サーバログに起動エラーがないことを確認してください。
/healthエンドポイントが応答することを確認してください: curl http://localhost:8081/health
- Smitheryデプロイメントの場合は、Smitheryダッシュボードのデプロイメントログを確認してください。
Smitheryデプロイメントが失敗する
- GitHubリポジトリが公開されているか、Smitheryに接続されていることを確認してください。
smithery.yamlとDockerfileがリポジトリのルートにあることを確認してください。
- Smitheryダッシュボードのビルドログを確認して、特定のエラーを確認してください。
- すべての依存関係が
package.jsonに宣言されていることを確認してください。
- ローカルでDockerイメージをビルドしてみてください:
docker build -t thoth-mcp .
📚 コントリビューション
コントリビューションは大歓迎です!以下の手順に従ってください。
- リポジトリをフォークします。
- 機能ブランチを作成します (
git checkout -b feature/amazing-feature)
- 変更をコミットします (
git commit -m 'Add amazing feature')
- ブランチにプッシュします (
git push origin feature/amazing-feature)
- プルリクエストを開きます。
コードが以下の条件を満たしていることを確認してください。
- 既存のTypeScriptスタイルに従っていること。
- 適切なZodスキーマを含んでいること。
- 必要に応じてドキュメントを更新していること。
- 型チェックを通過していること (
pnpm typecheck)
- ロギングに
console.error()を使用していること(console.log()は使用しない - stdioモードを壊す可能性があります)
メンテナー向け
更新のビルドと公開に関する詳細な手順は、PUBLISHING.mdを参照してください。
📚 サポート
📄 ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
📚 変更履歴
v1.3.0 (2025-10-10)
- 新機能: 公式のClaude Codeプラグインを追加しました。
- 新機能: コンテンツワークフローを効率化する5つのスラッシュコマンドを追加しました。
- 新機能: 3つの専用AIエージェント(Content Creator、Brand Manager、Social Media Optimizer)を追加しました。
- プラグインは、すべてのMCPサーバ機能に対して使いやすいインターフェイスを提供します。
- 包括的なプラグインドキュメントと使用例を追加しました。
- Claude Codeユーザーの開発者体験を向上させました。
v1.2.0 (2025-10-08)
- 新機能: SmitheryとクラウドデプロイメントのためのHTTPトランスポートサポートを追加しました。
- 新機能:
/mcpと/healthエンドポイントを持つMCP Streamable HTTPを実装しました。
- サーバは現在、stdio(ローカル)とHTTP(リモート)のデュアルトランスポートモードをサポートしています。
- HTTPサーバのためにExpressとCORS依存関係を追加しました。
- コンテナ化デプロイメントのためのDockerfileを追加しました。
- 適切なHTTPランタイムでSmitheryデプロイメント用に設定しました。
- HTTPモードはクエリパラメータを使用した設定をサポートします。
- Claude Desktop用のstdioモードとの下位互換性を維持しています。
v1.0.3 (2025-10-08)
- 包括的な公開ドキュメント(PUBLISHING.md)を追加しました。
- 設定からすべてのデバッグコンソールログを削除しました。
- コントリビューターガイドラインを改善しました。
v1.0.2 (2025-10-08)
- 重要な修正: stdio JSON-RPCプロトコルを破壊する
console.logステートメントを削除しました。
- デバッグ出力をstderrに変更して、JSONパースエラーを防止しました。
- サーバは現在、Claude Desktopや他のMCPクライアントと正しく動作します。
v1.0.1 (2025-10-08)
- 公式のMCPレジストリに公開しました。
- パッケージメタデータを更新しました。
- 完全なツールドキュメントを追加しました。
v1.0.0 (2025-10-08)
- 初期リリース
- 6つのThoth APIツールをサポート
- 多プラットフォームコンテンツ作成
- ブランドスタイル統合