mcpField
S
Since.dev

Since.dev

リモート
since.dev開発ツール04 週間前に更新
リポジトリ公式サイト

Since.dev について

Since.devは、依存関係や公開情報の監視、記憶した事実の検証、共有リポジトリやGrantの情報取得をエージェントに提供するホステッドサービスです。永続カーソルにより、エージェントは変更を繰り返しポーリングせず、確認済みの位置から処理を再開できます。

主な機能

  1. 01依存関係と公開情報の監視
  2. 02永続カーソルによる変更の追跡
  3. 03観測情報に基づく記憶内容の検証
  4. 04共有リポジトリと修復情報の確認
  5. 05Grantのチーム状況と調査結果の取得

活用シーン

  1. 01依存パッケージのリリースや情報源の変更を追跡
  2. 02エージェント再接続後に変更処理を再開
  3. 03行動前に記憶したパッケージ情報を検証
  4. 04共有リポジトリへの影響と修復案を確認

MCP 対応

リモートMCPサーバーはStreamable HTTPで接続し、World State、リポジトリ、Grant、アカウント利用状況の20ツールを提供します。利用にはワークスペース認証情報が必要で、権限は個別に付与されます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://api.since.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

Since.dev

Since.dev MCP

あなたの COO、Grant とその AI チームに、最新情報、チームの状況や決定事項、さらに World State を提供します。

製品 · ドキュメント · MCP リファレンス

Since.dev はホステッドサービスであり、このリポジトリはそのリモート MCP サーバーです。AI エージェント向けに、次の 3 種類のツールを提供します。

  • Grant: AI COO の Grant とそのチームが取り組んでいる内容を確認し、調査結果や実行履歴を読み、Grant に質問し、実行中の作業を停止して、調査結果に関する決定事項を記録できます。
  • World State: コードが依存する公開情報(パッケージ、リポジトリ、サービスのステータスページ、ウェブページ、アドバイザリーカタログ)を監視し、永続的なカーソルを使ってエージェントが最後に確認してからのすべての変更を把握し、行動する前に記憶された事実を確認できます。
  • リポジトリと修復: エージェントと共有されているリポジトリ、その依存関係への影響、提案された修復を確認できます。

このリポジトリには接続用ファイルのみが含まれています。README、クライアント設定例、Gemini CLI 拡張機能です。インストールまたは実行するサーバーコードはありません。

目次

要件

  • Since.dev アカウント。 メールアドレス、GitHub、または Google で作成できます。ログインごとに Free ワークスペースが 1 つ含まれます。
  • そのワークスペースの認証情報: API キー、または対応クライアントでのブラウザーサインイン(OAuth)。サーバーは匿名アクセスを許可しておらず、認証情報でアクセスできるのはその認証情報に対応するワークスペースのみです。
  • 使用するツールが含まれるプラン。 World State、リポジトリ、使用状況のツールは、プランの上限内であれば Grant Free を含むすべてのプランで利用できます。get_usage を呼び出すと確認できます。Grant のツールには有料プラン(Grant Pro または Grant Studio)が必要です。Grant Free では plan_required が返されます。料金をご覧ください。

API キーを取得する

  1. https://app.since.dev にサインインし、エージェントが使用するワークスペースを選択します。
  2. 接続 → 外部エージェント(https://app.since.dev/connections/agents)を開きます。
  3. 新しい接続を選択し、release-bot などの接続名を入力してから、接続を作成を選択します。
  4. キーをコピーします。キーは sc_live_ で始まり、一度だけ表示されます。紛失した場合は、接続の 管理 から新しいキーを発行してください。
  5. SINCE_API_KEY 環境変数、またはクライアントのシークレット設定に保存します。API キーをコミットしないでください。

ワークスペースのメンバーであれば誰でも接続を作成できます。各接続はワークスペース内で個別のエージェントとして扱われ、それぞれ独自のキーを持ちます。接続は subscribe で作成したウォッチの変更を読み取ります。既存のウォッチを与えるには、接続で ウォッチを接続 を選択するか、attach_to_set を呼び出してください。リポジトリアクセスとGrant へのアクセスは別途付与します。

キーを使わずに、ブラウザーサインインを利用することもできます。Claude、Codex、Cursor など、リモート MCP サインインに対応するクライアントでは、サーバー URL を追加し、プロンプトが表示されたらサインインできます。サインイン時に、ワークスペースの所有者または管理者がワークスペース、プロジェクト、権限を承認します。

接続する

Streamable HTTP を使用して、MCP クライアントにサーバーを追加します。

https://api.since.dev/mcp
  • OAuth: クライアントが対応している場合は、ブラウザーでサインインします。
  • API キー: ワークスペースの API キーを Bearer トークンとして Authorization ヘッダーに送信します。
mcpServers ファイルを使用するクライアント

examples/mcp.json の例:

{
  "mcpServers": {
    "since": {
      "url": "https://api.since.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${SINCE_API_KEY}"
      }
    }
  }
}

この例では、環境変数から SINCE_API_KEY を読み取ります。クライアントが環境変数を展開しない場合は、代わりにシークレット設定を使用してください。

VS Code

ワークスペースの .vscode/mcp.json 用の examples/vscode-mcp.json の例です。VS Code はキーの入力を求め、シークレット入力として保持します。

{
  "servers": {
    "since": {
      "type": "http",
      "url": "https://api.since.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${input:since-key}"
      }
    }
  },
  "inputs": [
    {
      "id": "since-key",
      "type": "promptString",
      "description": "Since.dev API key",
      "password": true
    }
  ]
}
Gemini CLI
gemini extensions install https://github.com/since-dev/mcp

インストーラーのシークレット入力プロンプトで、Since.dev ワークスペースの API キーを入力します。

アクセス権の付与

新しい認証情報には「アクセス権の付与」がありません。ワークスペースのオーナーまたは管理者が Connections → External agents を開き、接続の Manage を選択して、Grant access で共有するプロジェクトと許可する操作(read、question、investigate、decision、control)を選びます。

  • まず grant_team_status を呼び出します。承認済みのプロジェクト、権限、Grant のチームが表示されます。または、オーナーがアクセス権を付与する場所が示されます。
  • 承認済みのすべてのプロジェクトを対象にするには、applicationIds を省略します。
  • grant_question は最大55秒間待機します。Grant の作業が続いている場合は、同じ requestKey を指定して再度呼び出すと、待機を続けられます。質問には、アプリと同じワークスペースモデルと利用枠が適用されます。
  • World State とリポジトリのツールはそれぞれ独自のアクセス権が付与され、Grant のアクセス権がなくても動作します。

ツール

サーバーは20個のツールを提供し、tools/list は各ツールの完全な入力スキーマを返します。ブラウザーサインインを使用する接続では、承認された権限で利用可能なGrantツールが一覧表示されます。

Grant

Grantツールを利用するには、有料プランと接続へのGrantアクセス権が必要です(アクセス権の付与を参照)。各ツールは、引数を含む input オブジェクトと、対象プロジェクトを絞り込む任意の applicationIds 配列を受け取ります。applicationIds を指定しない場合、接続で承認されたすべてのプロジェクトが対象になります。input 内のNullableフィールドも必須です。該当しない場合は null を指定します。

ツール内容主な入力
grant_team_status最初に呼び出してください。承認済みのプロジェクト、権限、Grant のチームが表示されます。チームメンバーごとの役割、ソース、状態、現在の作業、最新の概要も確認できます。特定の実行の状態を読み取るには、runIds を指定します。input.runIds:最大20個の実行ID。概要を表示する場合は null
grant_read保存された調査結果(証拠と判断を含む)、実行(概要を含む)、会話をIDで1件読み取るか、調査結果のページを一覧表示します。input.type(finding、run、conversation、findings のいずれか)、input.id、input.cursor、input.severity、input.disposition
grant_question承認済みのプロジェクトについてGrantに質問します。Grantは保存された調査結果と概要をもとに回答し、チームにリアルタイムで問い合わせることもできます。この操作には investigate 権限も必要です。回答を最大 waitSeconds 秒待ちます。Grant の作業が続いている場合は、同じ requestKey を指定して再度呼び出すと、待機を続けられます。input.content(最大12,000文字)、input.conversationId(新しい会話の場合は null)、input.waitSeconds(0~55)、requestKey(8~160文字)
grant_stopGrantまたはチームメンバーの実行中の作業を停止します。保存済みの結果は保持されます。input.runId
grant_record_decision調査結果に対応状況、メモ、担当者、またはフォローアップ日を記録します。これは判断の記録であり、問題が修正されたことを証明するものではありません。input.id、input.expectedVersion、input.disposition(open、accepted、deferred、addressed、dismissed のいずれか)、input.note。input.ownerId、input.revisitAt は任意
World State

World State ツールは、各プランの上限内であればすべてのプランで利用できます。接続は、自身が作成した監視対象と、共有された監視対象またはセットの変更を読み取ります。

ツール機能主な入力
check_coverage対象を監視する前に、監視可能かどうかを確認します。カバレッジレベル(good、partial、none)、情報源、確認頻度、正規の対象キーを返します。subjectType、subject、aspect
subscribeポーリングせずに変更を受け取るための監視対象を作成します。1件の監視には型指定フォームを使用するか、最大10件を指定した自然言語の文を使います。subjectType、aspect、および subject または canonicalKey のいずれか。または statement。threshold(0~1)は任意です
what_changed_sinceエージェントが再開するときに最初に呼び出します。確認済みカーソル以降の監視対象に関するすべての変更を、順序付けして重複を除外したうえで返します。各変更には、フィールドの変更、情報源の根拠、評価が含まれます。since(カーソル。確認済みの位置から再開する場合は省略)、limit(既定値は50、最大200)は任意です
acknowledge_changes完全な what_changed_since の応答を処理した後、永続カーソルを進めます。安全に再試行でき、カーソルが後退することはありません。その応答の cursor
verify_factsエージェントが記憶している事実を、行動する前に現在の観測状態と照合します。各事実は valid、changed、unknown のいずれかを返します。unknown は観測がないことを意味し、何も変わっていないことを意味するわけではありません。プランの月間検証呼び出し回数に含まれます。facts:最大100件。それぞれに subjectKey、aspect、fieldPath、expectedValue を指定します
subject_history対象の観測済み変更履歴と合計を返します。エージェントはこれを使って適切な再確認頻度を判断できます。subjectKey。limit は任意です
list_watchesこの接続から参照できる保存済み監視対象を、1ページあたり50件で一覧表示します。status(active、needs_attention、paused、closed、expired)と offset は任意です
inspect_watch保存済みの監視対象1件について、カバレッジと情報源の健全性を読み取ります。情報源の確認や変更の確認は行いません。id
list_setsワークスペースのサブスクリプションセット(監視対象をまとめた名前付きグループ)と、この接続が各セットに接続されているかどうかを一覧表示します。なし
attach_to_setサブスクリプションセットに接続し、以降の変更を受け取ります。過去の変更は再送されません。過去の変更には subject_history を使用してください。list_sets の setId
リポジトリと修復

これらのツールは、ワークスペースの所有者または管理者がリポジトリの Settings → Agent access で接続に共有したリポジトリのみを読み取ります。書き込みアクセス権は付与されません。

ツール機能主な入力
list_maintained_repositoriesこの接続に共有されているリポジトリを一覧表示します。なし
inspect_repository保存済みのリポジトリについて、依存関係と影響のステータスを読み取ります。id。impactOffset は任意です
list_repairs共有リポジトリの影響と修復のステータスを読み取ります。repositoryId、review(open、attention、completed、all)、offset は任意です
inspect_repair修復1件について、記録された根拠、影響を受けるコード、パッチのバージョン、CI チェック、判断を読み取ります。チェックに合格しても、本番環境で安全であることの証明にはなりません。id。現在の GitHub プルリクエストの差分を含める includeCurrentPr は任意です
アカウント
ツール機能主な入力
get_usageワークスペースのプランと現在の使用状況を読み取ります。読み取り専用です。なし

例:依存関係を監視して変更を確認する

React を使用するプロジェクトを保守するエージェントは、npm を定期的に確認せずに React の新しいバージョンを知りたいと考えています。各手順では、エージェントが tools/call リクエストで送信する name と arguments を示します。

  1. 依存関係を監視します。ソースが対象かどうかを先に確認するには、同じ 3 つのフィールドを指定して check_coverage を呼び出します。

    { "name": "subscribe", "arguments": { "subjectType": "package", "subject": "npm:react", "aspect": "versions" } }
    

    結果には、新しい監視の id、status、coverage、cadenceMinutes が含まれます。最初の確認ではベースラインが記録され、以降の変更はこの接続に配信されます。

  2. エージェントが作業を再開したら、ほかの操作より先に what_changed_since を呼び出します。最後に確認済みの位置から続けるには、since を省略します。

    { "name": "what_changed_since", "arguments": { "limit": 50 } }
    

    結果の例(抜粋):

    {
      "changes": [
        {
          "change": {
            "seq": 84219,
            "idempotencyKey": "a3f1c9...",
            "subject": { "key": "package:npm:react", "type": "package", "name": "react" },
            "aspect": "versions",
            "fieldChanges": [{ "path": "version", "label": "Latest version", "from": "19.1.0", "to": "19.2.0" }],
            ...
          },
          "context": { ... }
        }
      ],
      "cursor": 84219,
      "hasMore": false,
      ...
    }
    

    各 change ブロックには、フィールドの変更、ソース、検出時刻が含まれます。その context には、根拠と評価が含まれます。

  3. レスポンス内のすべての変更を処理した後、そのカーソルを確認済みとして通知します。

    { "name": "acknowledge_changes", "arguments": { "cursor": 84219 } }
    

    hasMore が true の場合は、再度 what_changed_since を呼び出します。確認済みとして通知されなかったページは再び返されるため、配信は少なくとも 1 回行われます。idempotencyKey で重複を排除してください。

  4. エージェントが記憶しているバージョンに基づいて操作する前に、確認します。

    {
      "name": "verify_facts",
      "arguments": {
        "facts": [
          { "subjectKey": "package:npm:react", "aspect": "versions", "fieldPath": "version", "expectedValue": "19.2.0" }
        ]
      }
    }
    

    各事実は valid、changed、または unknown を返します。unknown は「観測なし」として扱い、「変更なし」とは決して扱わないでください。

サポート

コメント

MCP は初めてですか?

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

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