なぜドキュメントが重要なのか

ドキュメントは最新かつ正確なコンテキストを提供する。これがないと、モデルは古く不完全な学習データに頼ってしまう。ドキュメントがあると、モデルは次のような点を把握しやすくなる:
  • 最新のAPIとパラメータ
  • ベストプラクティス
  • 組織の規約・慣習
  • ドメインの用語
ほかにもいろいろ。コンテキストを切り替えずに、Cursorの中でドキュメントを活用する方法をこの先で紹介するよ。

モデルの知識カットオフ

大規模言語モデルは、ある時点までのデータで学習される。この時点を「知識カットオフ」と呼ぶ。つまり、次のようなことが起こりうる:
  • 直近のライブラリ更新が反映されていない
  • 新しいフレームワークやツールを知らない場合がある
  • カットオフ以降のAPI変更を把握していない
  • 学習以降にベストプラクティスが変わっている可能性がある
たとえば、モデルの知識カットオフが2024年初頭なら、2024年後半にリリースされた機能は、人気のフレームワークでも把握していない。

どのツールを使うべき?

このディシジョンツリーを使って、ドキュメントに最適なアプローチをすばやく見つけよう:

メンタルモデル

Toolメンタルモデル
@Docs公式ドキュメントを参照・閲覧するイメージ
@Webインターネットで解決策を検索するイメージ
MCP自社(内部)ドキュメントにアクセスするイメージ

公開ドキュメント

外部ドキュメントは、モデルの知識が限定的だったり古くなっている可能性がある公開情報を扱う。Cursor では、この情報にアクセスするための主要な方法を2つ用意してる。

@Docs の使い方

@Docs は、人気のツールやフレームワークの公式ドキュメントに Cursor をつなぐ機能。最新かつ信頼できる情報が必要なときに使ってね:
  • API リファレンス: 関数シグネチャ、パラメータ、戻り値の型
  • はじめ方ガイド: セットアップ、設定、基本的な使い方
  • ベストプラクティス: 公式が推奨するパターン
  • フレームワーク別のデバッグ: 公式のトラブルシューティングガイド
@
@Docs Next.js How do I set up dynamic routing with catch-all routes?
Agent⌘I
Auto

@Web の使い方

@Web は、最新の情報、ブログ記事、コミュニティでの議論をインターネット上からリアルタイム検索する。こんなときに使おう:
  • 最新のチュートリアル: コミュニティ発のコンテンツやサンプル
  • 比較: 異なるアプローチを比較した記事
  • 最新アップデート: 直近の更新やアナウンス
  • 複数の視点: 問題に対する別々のアプローチ
@
@Web latest performance optimizations for React 19
Agent⌘I
Auto

社内ドキュメント

社内ドキュメントには、AIモデルが学習時に扱っていない、組織固有の情報が含まれる。例えば次のようなもの:
  • 内部API: カスタムサービスやマイクロサービス
  • 社内標準: コーディング規約、アーキテクチャパターン
  • プロプライエタリシステム: カスタムツール、データベース、ワークフロー
  • ドメイン知識: ビジネスロジック、コンプライアンス要件

MCP で社内ドキュメントにアクセスする

Model Context Protocol (MCP) は、プライベートなドキュメントやシステムを Cursor に取り込むための標準化された仕組み。MCP は Cursor と社内リソースの間にある薄いレイヤーとして機能する。 MCP が重要な理由:
  • モデルは社内の慣習を推測できない
  • カスタムサービスの API ドキュメントは公開されていない
  • ビジネスロジックやドメイン知識は組織固有
  • コンプライアンスやセキュリティ要件は会社ごとに異なる

よく使われる MCP 連携

IntegrationAccessExamples
Confluence会社の Confluence スペースアーキテクチャドキュメント、社内サービスの API 仕様、コーディング標準とガイドライン、プロセス文書
Google Drive共有ドキュメントとフォルダ仕様書、会議メモと意思決定記録、設計ドキュメントと要件、チームのナレッジベース
Notionワークスペースのデータベースとページプロジェクトドキュメント、チーム Wiki、ナレッジベース、プロダクト要件、技術仕様
Custom社内システムとデータベースプロプライエタリな API、レガシーなドキュメントシステム、カスタムナレッジベース、特化ツールやワークフロー

カスタムソリューション

固有のニーズには、次のことができるカスタム MCP サーバーを構築できる:
  • 社内ウェブサイトやポータルをスクレイピングする
  • プロプライエタリなデータベースに接続する
  • カスタムドキュメントシステムにアクセスする
  • 社内 Wiki やナレッジベースから取得する
カスタム MCP サーバーを構築したら、Cursor がドキュメントを更新できるようにツールを公開することもできる
社内ドキュメントをスクレイピングするカスタム MCP サーバーの例:
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
import TurndownService from "turndown";

// Create an MCP server for scraping internal docs
const server = new McpServer({
  name: "internal-docs",
  version: "1.0.0"
});

const turndownService = new TurndownService();

// Add tool to scrape internal documentation
server.tool("get_doc",
  { url: z.string() },
  async ({ url }) => {
    try {
      const response = await fetch(url);
      const html = await response.text();
      
      // Convert HTML to markdown
      const markdown = turndownService.turndown(html);
      
      return {
        content: [{ type: "text", text: markdown }]
      };
    } catch (error) {
      return {
        content: [{ type: "text", text: `Error scraping ${url}: ${error.message}` }]
      };
    }
  }
);

// Start receiving messages on stdin and sending messages on stdout
const transport = new StdioServerTransport();
await server.connect(transport);

ドキュメントを最新に保つ

ドキュメントはすぐ古くなる。Cursor なら、実際のコードや開発中の会話に基づいてドキュメントを生成・更新してくれるから、常に最新で使えるドキュメントを維持できる。

既存コードから

Cursor を使ってコードベースから直接ドキュメントを作成しよう:
@
この Express ルーターの API ドキュメントを生成して。すべてのエンドポイント、パラメーター、レスポンス形式を含めて
Agent⌘I
Auto

チャットセッションから

Cursor との会話には、ドキュメント化できる有用な意図が含まれてる。
複雑な問題を解決したあと:
@
認証のセットアップについての会話を、チームのwiki向けのステップバイステップガイドに要約して
Agent⌘I
Auto

まとめ

  • ドキュメントをコンテキストに使うと、Cursor の精度と最新性が上がる
  • 公式ドキュメントには @Docs、コミュニティ由来の知識には @Web を使う
  • MCP は Cursor と社内システムをつなぐブリッジになる
  • 知識を最新に保つために、コードや会話からドキュメントを生成する
  • より網羅的に理解するには、外部と内部のドキュメントソースを組み合わせる