Otis について
Otisは、コンサルタントや小規模事業者向けに、AIアシスタント経由で顧客請求を管理するMCPサーバーです。業務や顧客情報、作業、経費、請求書、支払いを記録し、請求書番号の採番や発行済み請求書の不変性をルールで管理します。
主な機能
- 01事業者情報と顧客情報の管理
- 02請求対象時間、サービス、経費、AI利用量の記録
- 03請求書の下書きと発行済み請求書の管理
- 04全額・一部支払いの追跡
- 05事業記録のエクスポート
- 06ルールに基づく合計計算と採番
活用シーン
- 01コンサルティング業務と経費の記録
- 02請求書を作成して承認に回す
- 03顧客の支払いと参照情報の追跡
- 04事業の請求記録のエクスポート
MCP 対応
Otisは、ホスト型のリモートエンドポイントまたはセルフホスト環境を通じて、MCPクライアントに請求ツールを提供します。OAuthとメールコードでサインインします。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.otisbase.com/mcpclaude mcp add --transport http com-otisbase-otis https://mcp.otisbase.com/mcp{"mcpServers":{"com-otisbase-otis":{"type":"http","url":"https://mcp.otisbase.com/mcp"}}}Cursor で開く{"servers":{"com-otisbase-otis":{"type":"http","url":"https://mcp.otisbase.com/mcp"}}}VS Code で開く{"mcpServers":{"com-otisbase-otis":{"type":"http","url":"https://mcp.otisbase.com/mcp"}}}{"mcpServers":{"com-otisbase-otis":{"serverUrl":"https://mcp.otisbase.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Otis MCP
コンサルタントや小規模エージェンシー向けに構築された、クライアント請求用の無料 MCP サーバー、Otisbaseのソースコードです。
Otisにはアプリもダッシュボードもありません。AI アシスタントがインターフェースとなり、クライアント、作業、経費、支払いをOtisに記録し、承認した請求書を発行します。Otisは記録を保存し、ルールを適用します。請求書に番号を付け、合計額を計算し、請求書の発行前に正確な合計額の指定を求め、発行済みの請求書を書き換えることはありません。OtisはAIモデルを実行しません。すべての結果は、このリポジトリ内の記録とルールに基づいています。
このリポジトリは、mcp.otisbase.comで稼働するサービス全体を収めています。MCP サーバー、メールでのサインイン、ストレージレイヤーが含まれます。Cloudflare Workers上で稼働します。otisbase.comのウェブサイトは別途管理されています。
ホストされたサービスを利用する
このURLをアシスタントのリモート MCP サーバーとして追加してください。
https://mcp.otisbase.com/mcp
サインインにはメールコードを使ったOAuthを利用するため、APIキーは不要です。インストール方法では、Claude、ChatGPT、Claude Code、Codex、Cursor、Muse、Grok Bot、Mistral Vibe向けのガイドを確認できます。ホストされたサービスは無料です。記録はEU内に保存されます。
- MCPドキュメント:エンドポイント、ルール、すべてのツール。
- Otis Plugins:ClaudeとCodex向けのプラグイン。メニューと9つのワークフロースキルが含まれます。
- スキル:各スキルの機能を確認できます。
Otisが記録する内容
| 領域 | 記録内容 |
|---|---|
| 事業 | 事業の詳細、税の設定、請求書番号。所有者が使用します |
| クライアント | クライアントと請求先の詳細 |
| 作業 | 請求可能な時間、サービス、報告されたAI利用状況、経費 |
| 請求書 | 下書き、内容が変更されない発行済み請求書、割引、税 |
| 支払い | 重複を防ぐ参照情報付きの全額・一部支払い |
| エクスポート | 事業記録の完全なエクスポート |
仕組み
| 部分 | 実装 |
|---|---|
| ランタイム | 1つのCloudflare Worker(src/index.ts) |
| MCP サーバー | /mcpでStreamable HTTPを使用する@modelcontextprotocol/server(src/mcp.ts) |
| サインイン | メールコードを使用する@cloudflare/workers-oauth-provider(src/auth.ts) |
| 事業記録 | 事業ごとに1つのDurable Object内のSQLite(src/business-store.ts) |
| アカウントとサインイン | Durable Objects(src/account-store.ts、src/sign-in-store.ts) |
| OAuthの状態 | Workers KV |
| メール | サインインコードとセキュリティ通知にCloudflare Email Sendingを使用 |
| データの保存場所 | EU管轄のDurable Objects(src/regions.ts) |
| サインインページ | 専用の小さなスタイルシートを使ったサーバー側レンダリングHTML(src/html.ts、src/shell.ts) |
すべての事業操作で、呼び出し元の現在のメンバーシップを確認します。金額は最小通貨単位の整数です。書き込みにはリクエストIDを指定するため、再試行された呼び出しによって同じ事実が二重に記録されることはありません。
リポジトリの構成
| パス | 内容 |
|---|---|
src/ | Worker、MCPツール、サインイン、ストレージ、請求ルール、公開ドキュメント |
test/ | Cloudflareのローカルランタイムでの統合テスト |
scripts/ | ライブエンドポイントの確認、サインインの確認、プラグイン生成スクリプト |
spec/ | 製品仕様。対象範囲、請求ルール、サービス、設計 |
動作を変更する前に仕様を読んでください。spec/01-README.mdから始めてください。仕様は決定ログより優先されます。
開発
Node 24以降が必要です。
npm ci
npm run check
npm test
テストはCloudflareのローカルランタイムで実行されます。テストではメール配信をシミュレートします。
Workerをローカルで実行するには、次のコマンドを実行してください。
npm run dev -- --local --ip 127.0.0.1 --port 8788
次に、http://127.0.0.1:8788/healthを開いてください。ローカルランタイムでは、ローカルストレージのみが使用されます。
npm run plugins:buildは、src/workflows.tsからClaudeとCodexのプラグインを生成し、plugins/に出力します。これらはotisbase/otis-pluginsで公開されています。
セルフホスト
Cloudflare アカウントで独自のコピーを実行できます。デプロイする前に wrangler.jsonc を編集してください。
account_idに Cloudflare アカウントを設定します。- OAuth の状態を保存する KV 名前空間を作成し、その ID を
kv_namespacesに設定します。EU で保存する場合は、EU の管轄区域で作成してください。 - 2 つの
routesを独自のドメインに置き換えます。 varsを設定します。ORIGIN:MCP ホストの URL です。SITE_ORIGIN:ウェブサイトの URL です。MCP ホストで開かれたウェブサイトのページはこの URL にリダイレクトされ、サインインページにはサイトの利用規約とプライバシーポリシーへのリンクが表示されます。EMAIL_FROM:サインインコードの送信元です。このドメインは Cloudflare Email Sending 用に設定する必要があります。FEEDBACK_TO:feedback_sendツールを通じて送信されたフィードバックを受信するアドレスです。DO_JURISDICTION:euに設定すると、Durable Objects が EU 内に保持されます。Cloudflare に選択させる場合は削除してください。SIGN_IN_ENABLED:サインインを許可するにはtrueに設定します。
ratelimits.namespace_idに、アカウント内で一意の ID を設定します。
次にデプロイします。
npx wrangler login
npm run deploy
サインインページとメールには Otisbase の名称が記載されています。他のユーザーに独自のコピーを提供する前に、src/html.ts、src/auth.ts、src/notify.ts で名称を変更し、独自の利用規約とプライバシーポリシーを公開してください。
貢献
バグ報告、修正、アイデアを歓迎します。CONTRIBUTING.md をご覧ください。セキュリティ上の問題を報告するには、SECURITY.md をご覧ください。アシスタントからフィードバックを送ることもできます。Otis にフィードバックを送信するよう依頼してください。
ライセンス
このコードは MIT License のもとで公開されています。
以下の項目は MIT License の対象外です。
- Otisbase と Otis の名称およびロゴ。
- SIL Open Font License のもとで提供される
src/fonts/内の Geist フォント。
src/html.ts のコピーアイコンとチェックアイコンは、Phosphor Icons(MIT)から提供されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。