teamctx について
teamctxは、ProductNowのホスト型共有チームコンテキストを利用する転送クライアントで、CLIとstdio MCPサーバーを提供します。サービス自体はホストせず、文書の検索、閲覧、作成、整理の呼び出しをProductNowへ転送します。
主な機能
- 01共有コンテキストとヘルプの検索
- 02文書の閲覧とフォルダーの確認
- 03情報の記録と文書の作成・編集
- 04文書の移動、名前変更、アーカイブ、コメント
- 05文書のバージョンとステータスの管理
- 06CLIとstdio MCPサーバー
活用シーン
- 01引用付きの抜粋でワークスペース文書を検索
- 02チームの決定やメモを共有コンテキストに保存
- 03文書の作成、編集、整理
- 04文書のバージョンやコメントスレッドを確認
MCP 対応
teamctxはCLIまたはMCPのツール呼び出しを、ProductNowのホスト型Streamable HTTP MCPエンドポイントへ転送します。公開仕様のある上流ツール16個を提供し、利用者が用意したアクセストークンが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
16掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | いいえ | 検索クエリのテキスト。 |
| folderId | string | いいえ | フォルダーの ID。省略するとルートを使用します。 |
| resultType | enum | いいえ | 結果をドキュメントまたはフォルダーに限定します。documents | folders |
| searchScope | enum | いいえ | 検索対象:共有ワークスペースまたは ProductNow ヘルプ。workspace | product_help |
| creatorNames | array | いいえ | これらのユーザーが作成した項目のみを含めます。 |
| updatedAfter | string | いいえ | この日時以降に更新された項目のみを含めます。 |
| updatedBefore | string | いいえ | この日時以前に更新された項目のみを含めます。 |
詳細
teamctx
teamctx は、ProductNow の共有チームコンテキスト用の転送クライアントです。実際の ProductNow サーバーはホストされており、セルフホストではありません。teamctx は、ワークスペースのドキュメントの検索、読み取り、書き込み、整理のための MCP ツール呼び出し(または CLI 呼び出し)を受け取り、ホストされた ProductNow MCP エンドポイントに転送して、そのサーバーから返されたものをそのまま返します。1 つのバイナリで、コマンドラインインターフェースと stdio MCP サーバーの両方を提供します。
アップストリームエンドポイントは https://api.productnow-prod.com/mcp(Streamable HTTP)です。Auth0 を介した OAuth 2.0 で保護されており、必須スコープは mcp:use です。teamctx 自体は OAuth フローを実行しません。すでに取得済みのアクセストークンを PRODUCTNOW_ACCESS_TOKEN 環境変数に設定すると、teamctx は転送するすべての呼び出しで Bearer 認証情報として送信します。この変数が設定されていないか空白の場合、リクエストを試みる前に、その変数名を示すエラーで teamctx は終了します。
このパッケージは、列挙されたアップストリームツール 18 個のうち 16 個を実装しています。これは、公開ドキュメントに完全な Input テーブルが掲載されている、ラベル付きのコアサブセットです。完全なパラメーターのスキーマが公開されていないため、2 つのツールは意図的に含めていません。
curate_knowledge_pack と create_help_document は、告知も転送もされません。実装済みの 16 個のツールのパラメーター型は、公開ドキュメントの Input テーブルから推定しています(アップストリームのツールカタログには、JSON-Schema のプロパティ定義は掲載されていません)。名前、必須かどうか、列挙値は、公開ドキュメントに記載されたとおりです。
インストール
npx @reneturcios/teamctx call search '{"query":"pricing"}'
または、コンテナーイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/teamctx
コンテナーはデフォルトで MCP サーバーとして起動します(下記参照)。CLI として使用するには、CLI 引数を渡します。
CLI
すべてのツールが JSON オブジェクトの引数セットを受け取るため、CLI はツールごとのサブコマンドではなく、汎用のサブコマンドを 1 つ使用します。
teamctx call <tool> [json-args]
teamctx call search '{"query":"pricing","resultType":"documents"}'
teamctx call fetch '{"documentId":"doc_123"}'
teamctx call fetch_folder '{}'
teamctx call remember '{"content":"We ship on Fridays."}'
teamctx --version
指定する場合、json-args は単一の JSON オブジェクトである必要があります。不正な JSON、オブジェクト以外の値、不明なツール、余分な引数は使用方法エラー(終了コード 2)となり、認証情報の確認より前に拒否されます。PRODUCTNOW_ACCESS_TOKEN が設定されていない場合やアップストリームでエラーが発生した場合など、実行時エラーは終了コード 1 となります。成功時は終了コード 0 となり、アップストリームの結果を JSON として出力します。
MCP サーバー
1 つのバイナリで両方のインターフェースを提供します。mcp サブコマンドを実行すると、stdio MCP サーバーが起動します。
npx -y @reneturcios/teamctx mcp
MCP クライアントの設定:
{
"mcpServers": {
"teamctx": {
"command": "npx",
"args": ["-y", "@reneturcios/teamctx", "mcp"],
"env": {
"PRODUCTNOW_ACCESS_TOKEN": "<your ProductNow access token>"
}
}
}
}
ツール
| ツール | 必須入力 | 機能 |
|---|---|---|
search | —(フォルダー検索ではqueryが必須) | 共有コンテキストまたはProductNowヘルプを検索し、引用付きの根拠抜粋を取得するか、フォルダー名を検索します。 |
fetch | documentId | 1つのドキュメントを読み取ります。全文、セクション、コメントスレッド、フォルダー、正規URLを取得します。 |
fetch_folder | — | フォルダーまたはウェアハウスのルートを一覧表示します。オプションでネストされたツリー(deep)として表示できます。 |
list_document_versions | documentId | ドキュメントのすべてのバージョンを新しい順に一覧表示します。バージョンステータスで絞り込むこともできます。 |
get_status | documentId | ドキュメントの下書きエージェントがrunningかidleかを報告します。 |
remember | content | 事実、決定事項、またはメモを1つ、適切なドキュメントまたはフォルダーに保存します。 |
create_document | name、prompt | ドキュメントを作成し、フォルダーに格納して、AIで内容を生成します。 |
edit_document | documentId、message | 編集指示を、そのドキュメント専用の編集エージェントに渡します。 |
update_document_status | documentId、status | アクション動詞 snapshot、review、またはpublishを使って、現在の下書きを昇格させます。 |
create_folder | name | フォルダーを作成します。オプションで親フォルダーの下に作成できます。 |
move | ids | 複数のドキュメントやフォルダーをまとめて、1つのフォルダーまたはルートに移動します。 |
rename | id、name | 1つのドキュメントまたはフォルダーの名前を変更します。 |
archive | ids | 複数のドキュメントやフォルダーをまとめてアーカイブします。削除はされません。 |
comment_on_document | documentId、comment | ドキュメントの現在のレビューバージョンにコメントします。引用テキストに紐付けることもできます。 |
reply_to_thread | threadId、message | 既存のコメントスレッドに返信します。 |
upload_media | fileName、mimeType | 画像/動画メディア用の署名付きアップロードURL(有効期間5分)を割り当てます。 |
上流のドキュメントに記載されている、分かりにくいルールについての注意:
searchは、デフォルトでworkspaceスコープとdocuments結果タイプを使用します。作成者と日付のフィルターは、ツールスキーマの説明に従って組み合わせます。list_document_versionsはバージョンのステータス(DRAFT … ARCHIVED)で絞り込みます。一方、update_document_statusではアクション動詞(snapshot / review / publish)を指定します。混同しないでください。create_documentのfolderIdは実際には必須です。ウェアハウスのルートに作成する場合に限り、省略できます。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch only)
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。