<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cursor 学习笔记 – Context</title>
    <link>https://skyao.net/learning-cursor/docs/context/</link>
    <description>Recent content in Context on Cursor 学习笔记</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 21 Mar 2025 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="https://skyao.net/learning-cursor/docs/context/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: 代码库索引</title>
      <link>https://skyao.net/learning-cursor/docs/context/codebase-indexing/</link>
      <pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-cursor/docs/context/codebase-indexing/</guid>
      <description>
        
        
        &lt;p&gt;了解如何在Cursor中索引代码库，以获得更准确的AI帮助和搜索结果&lt;/p&gt;
&lt;h2 id=&#34;索引代码库&#34;&gt;索引代码库&lt;/h2&gt;
&lt;p&gt;为了获得更好和更准确的代码库答案，您可以索引您的代码库。在幕后，Cursor 为代码库中的每个文件计算嵌入，并将使用这些来提高代码库答案的准确性。&lt;/p&gt;
&lt;p&gt;当项目被打开时，每个 Cursor 实例将初始化该工作空间的索引。初始索引设置完成后，Cursor 将自动为添加到您的工作区的任何新文件建立索引，以保持您的代码库上下文最新。&lt;/p&gt;
&lt;p&gt;代码库索引的状态位于 &lt;code&gt;Cursor Settings&lt;/code&gt; &amp;gt; &lt;code&gt;Features&lt;/code&gt; &amp;gt; &lt;code&gt;Codebase Indexing&lt;/code&gt; 。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/codebase-indexing.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;高级设置&#34;&gt;高级设置&lt;/h2&gt;
&lt;p&gt;默认情况下，Cursor 将索引代码库中的所有文件。&lt;/p&gt;
&lt;p&gt;您还可以展开 “Show Settings” 部分以访问更高级的选项。在这里，您可以决定是否要为新存储库启用自动索引，并配置 Cursor 在存储库索引期间将忽略的文件。&lt;/p&gt;
&lt;p&gt;Cursor 使用与 VS Code 相同的包来处理文件忽略，这意味着它尊重所有 .gitignore 文件，包括子目录中的文件。您还可以为用户特定的忽略模式创建一个 .cursorignore 文件，您可能希望将其添加到 global.gitignore 中，以避免将其提交到存储库。&lt;/p&gt;
&lt;p&gt;如果你的项目中有任何 AI 绝对不需要阅读的大型内容文件，忽略这些文件可以提高答案的准确性。&lt;/p&gt;
&lt;h2 id=&#34;使用大型单体仓库&#34;&gt;使用大型单体仓库&lt;/h2&gt;
&lt;p&gt;在处理包含数十万个文件的大型单体仓库时，重要的是要对索引的内容进行战略性的考虑。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;使用 .cursorignore 让每个开发人员配置他们在单体仓库中工作的文件夹和路径&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;将 .cursorignore 添加到 global.gitignore&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这允许每个开发人员在单体仓库中优化其特定工作区域的索引。&lt;/p&gt;
&lt;h2 id=&#34;faq&#34;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;h3 id=&#34;我在哪里可以看到我索引的所有代码库&#34;&gt;我在哪里可以看到我索引的所有代码库？&lt;/h3&gt;
&lt;p&gt;目前，没有办法看到你索引的所有代码库的列表。您需要手动检查每个项目的索引状态，方法是在 Cursor 中打开项目并检查 Codebase Indexing settings。&lt;/p&gt;
&lt;h3 id=&#34;如何删除所有代码库&#34;&gt;如何删除所有代码库？&lt;/h3&gt;
&lt;p&gt;您可以从 “设置” 中删除 cursor 帐户以删除所有已索引的代码库，也可以从每个项目的“代码库索引”设置中手动删除单个代码库。目前没有办法在不删除帐户的情况下一次性删除所有代码库。&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: AI规则</title>
      <link>https://skyao.net/learning-cursor/docs/context/rules-for-ai/</link>
      <pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-cursor/docs/context/rules-for-ai/</guid>
      <description>
        
        
        &lt;p&gt;使用 Cursor 中的规则，您可以控制底层模型的行为。您可以将其视为指令和/或LLMs的系统提示。&lt;/p&gt;
&lt;p&gt;在 Cursor 内部，我们有两种主要方法来定制 AI 的行为以满足您的需求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;项目规则：特定于项目的规则，存储在 &lt;code&gt;.cursor/rules&lt;/code&gt; 目录中。当引用匹配的文件时，它们会自动包含在内。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;全局规则: 规则全局应用于所有项目，在 Cursor Settings &amp;gt; General &amp;gt; Rules 部分中进行配置。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在以下部分中了解有关如何使用它们的更多信息。&lt;/p&gt;
&lt;h2 id=&#34;项目规则推荐&#34;&gt;项目规则（推荐）&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;images/project-rules.png&#34; alt=&#34;project-rules.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;项目规则提供了一个强大而灵活的系统，具有特定于路径的配置。项目规则存储在 &lt;code&gt;.cursor/rules&lt;/code&gt; 目录中，并在项目的不同部分提供对 AI 行为的粒度控制。&lt;/p&gt;
&lt;p&gt;它们是这样工作的&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;语义描述：每个规则都可以包括一个关于何时应用它的描述&lt;/li&gt;
&lt;li&gt;文件模式匹配：使用 glob 模式指定规则适用于哪些文件/文件夹&lt;/li&gt;
&lt;li&gt;自动附加：引用匹配文件时可以自动包含规则&lt;/li&gt;
&lt;li&gt;以使用@file引用规则文件，允许您将多个规则链接在一起&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;注意&lt;/h4&gt;

    您可以使用@file引用规则文件，允许您将多个规则链接在一起

&lt;/div&gt;

&lt;p&gt;您可以使用命令面板通过 ctrl + Shift + P &amp;gt; New Cursor Rule 创建新规则。通过使用项目规则，您还可以获得版本控制的好处，因为它只是一个文件&lt;/p&gt;
&lt;p&gt;示例用例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;针对某些文件类型的特定于框架的规则（例如，.tsx 文件的 SolidJS 首选项）&lt;/li&gt;
&lt;li&gt;自动生成文件的特殊处理（例如，.proto文件）&lt;/li&gt;
&lt;li&gt;自定义UI开发模式&lt;/li&gt;
&lt;li&gt;特定文件夹的代码样式和架构首选项
​&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;全局规则&#34;&gt;全局规则&lt;/h2&gt;
&lt;p&gt;全局规则可以通过修改 Cursor Settings &amp;gt; General &amp;gt; Rules for AI 下的 AI 规则部分来添加。如果你想指定每个项目都应该包含的规则，比如输出语言、响应长度等，这很有用。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/rules-for-ai.png&#34; alt=&#34;rules-for-ai.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;h2 id=&#34;cursorrules&#34;&gt;.cursorrules&lt;/h2&gt;
&lt;p&gt;为了向后兼容，您仍然可以在项目的根目录中使用 .cursorrules 文件。我们最终将在未来删除 .cursorrules，因此我们建议迁移到新的项目规则系统，以获得更好的灵活性和控制。&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: @符号</title>
      <link>https://skyao.net/learning-cursor/docs/context/symbols/</link>
      <pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-cursor/docs/context/symbols/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Docs: 忽略文件</title>
      <link>https://skyao.net/learning-cursor/docs/context/ignore-files/</link>
      <pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-cursor/docs/context/ignore-files/</guid>
      <description>
        
        
        &lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;Cursor 提供了两个不同的忽略文件来控制文件的处理方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;.cursorignore&lt;/code&gt;：尽最大努力从 AI 功能和索引中排除文件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;.cursorindexingignore&lt;/code&gt;：仅控制为搜索和上下文索引哪些文件（与旧的 .cursorignore 相同）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cursorignore&#34;&gt;.cursorignore&lt;/h2&gt;
&lt;p&gt;.cursorignore 文件会尽最大努力将文件从 AI 功能和索引中排除。这对于以下情况很有用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;试图从 AI 访问和索引中排除敏感文件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;排除包含机密的配置文件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;限制对专有代码的访问&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;.cursorignore 中列出的文件将以最佳方式从 Cursor 的 AI 功能中排除：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;不包含在标签页和聊天请求中&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;未包含在 AI 功能的上下文中&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;未为搜索或上下文功能编制索引&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通过@-symbols 或其他上下文工具不可用&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cursorindexingignore&#34;&gt;.cursorindexingignore&lt;/h2&gt;
&lt;p&gt;.cursorindexingignore 文件仅控制为搜索和上下文功能索引哪些文件。这提供了与旧的 .cursorignore 相同的索引控件。当您需要执行以下操作时，请使用此文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;从索引中删除生成的大型文件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;跳过二进制文件的索引&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;控制代码库的哪些部分可搜索&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;优化索引性能&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;重要提示：.cursorindexingignore 中的文件仍然可以作为上下文手动包含或通过 AI 功能访问-它们不会自动索引或包含在搜索结果中。&lt;/p&gt;
&lt;h3 id=&#34;默认索引忽略文件&#34;&gt;默认索引忽略文件&lt;/h3&gt;
&lt;p&gt;仅对于索引，除了在 .gitignore、.cursorignore 和 .cursorindexignore 文件中指定的文件外，默认情况下还忽略以下文件。请注意，这些默认文件仅适用于索引，而不适用于其他 AI 功能。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;package-lock.json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pnpm-lock.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yarn.lock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;composer.lock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Gemfile.lock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bun.lockb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.env*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.git/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.svn/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.hg/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.lock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.bak
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.exe
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.dll
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.so
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.lockb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.qwoff
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.isl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.pdf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.doc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.doc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.xls
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.xlsx
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.ppt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.pptx
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.odt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.ods
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.odp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.odg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.odf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.sxw
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.sxc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.sxi
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.sxd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.sdc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.jpeg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.png
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.gif
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.bmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tif
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.mp3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.wav
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.wma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.ogg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.flac
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.aac
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.mp4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.mov
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.wmv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.flv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.avi
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.zip
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tar
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.7z
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.rar
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tgz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.dmg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.iso
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.cue
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.mdf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.mds
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.vcd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.toast
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.img
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.apk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.msi
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.cab
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tar.xz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tar.lzma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tar.Z
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.tar.sz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.lzma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.ttf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.otf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.pak
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.woff
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.woff2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.eot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.webp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.vsix
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.rmeta
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.rlib
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.parquet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.svg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.egg-info/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.venv/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;node_modules/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;__pycache__/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.next/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.nuxt/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.cache/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.sass-cache/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.gradle/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.DS_Store/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.ipynb_checkpoints/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.pytest_cache/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.mypy_cache/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.tox/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.git/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.hg/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.svn/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.bzr/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.lock-wscript/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.Python/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.jupyter/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.history/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.yarn/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.yarn-cache/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.eslintcache/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.parcel-cache/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.cache-loader/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.nyc_output/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.node_repl_history/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.pnp.js/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.pnp/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;文件格式&#34;&gt;文件格式&lt;/h2&gt;
&lt;p&gt;这两个文件使用与 .gitignore 相同的语法。以下是一些示例：&lt;/p&gt;
&lt;h3 id=&#34;基本模式&#34;&gt;基本模式&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-properties&#34; data-lang=&#34;properties&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Ignore all files in the `dist` directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;dist/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Ignore all `.log` files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;*.log&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Ignore specific file `config.json`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;config.json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;高级模式&#34;&gt;高级模式&lt;/h3&gt;
&lt;p&gt;只在 app 目录中包含 *.py 文件：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-properties&#34; data-lang=&#34;properties&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# ignore everything&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# do not ignore app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;!app/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# do not ignore directories inside app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;!app/*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;!app/**/*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# don&amp;#39;t ignore python files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;!*.py&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;故障排查&#34;&gt;故障排查&lt;/h2&gt;
&lt;p&gt;ignore 文件的语法完全遵循 .gitignore。如果您遇到问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在搜索查询中将 “cursorignore” 替换为 “gitignore”&lt;/li&gt;
&lt;li&gt;为类似模式检查 Stack Overflow&lt;/li&gt;
&lt;li&gt;使用 git check-ignore -v [file] 测试模式以了解匹配&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;常见问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;模式相对于 ignore 文件位置进行匹配&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;后来的模式覆盖了以前的模式&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;目录模式需要一个尾随斜杠&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;否定模式（！）必须否定以前的模式&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: 模型上下文协议</title>
      <link>https://skyao.net/learning-cursor/docs/context/model-context-protocol/</link>
      <pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-cursor/docs/context/model-context-protocol/</guid>
      <description>
        
        
        &lt;h2 id=&#34;什么是-mcp&#34;&gt;什么是 MCP？&lt;/h2&gt;
&lt;p&gt;模型上下文协议（Model Context Protocol / MCP） 是一个开放的协议，它描述了应用程序如何向 LLMs 提供上下文和工具。可以将 MCP 看作 Cursor 的插件系统-它允许您通过标准化接口将 Agent 连接到各种数据源和工具，从而扩展 Agent 的功能。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;要了解有关 MCP 的更多信息，请访问官方 MCP 文档，深入了解协议：&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://modelcontextprotocol.io/introduction&#34;&gt;https://modelcontextprotocol.io/introduction&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;使用&#34;&gt;使用&lt;/h3&gt;
&lt;p&gt;MCP 允许您将 Cursor 连接到外部系统和数据源。这意味着您可以将 Cursor 与现有的工具和基础设施集成，而不必在代码本身之外告诉 Cursor 项目的结构。&lt;/p&gt;
&lt;p&gt;MCP 服务器可以用任何可以打印到标准输出或服务于 HTTP 端点的语言编写。这种灵活性允许您使用首选的编程语言和技术堆栈非常快速地实现 MCP 服务器。&lt;/p&gt;
&lt;h4 id=&#34;示例&#34;&gt;示例&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;数据库: 允许 Cursor 直接查询数据库，而不是手动输入模式或自己操作数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;notion: 从 notion 中读取数据以引导 cursor 实现功能&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GitHub: 让 Cursor 创建 PR、创建分支、查找代码等&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Memory: 允许 cursor 在您工作时记住和调用信息&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stripe: 允许 Cursor 创建客户、管理订阅等&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;疑问： 这些 example 在哪里啊？没有链接&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;架构&#34;&gt;架构&lt;/h3&gt;
&lt;p&gt;MCP 服务器是通过标准化协议公开特定功能的轻量级程序。它们充当 cursor 和外部工具或数据源之间的中介。&lt;/p&gt;
&lt;p&gt;cursor 支持 MCP 服务器的两种传输类型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;stdio Transport&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在本地计算机上安装&lt;/li&gt;
&lt;li&gt;由光标自动管理&lt;/li&gt;
&lt;li&gt;通过标准输出直接通信&lt;/li&gt;
&lt;li&gt;仅限您在本地访问&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输入：Cursor 自动运行的有效 shell 命令&lt;/p&gt;
&lt;p&gt;对于 stdio 服务器，该命令应该是 Cursor 可以运行的有效 shell 命令。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SSE Transport&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以在本地或远程运行&lt;/li&gt;
&lt;li&gt;由您管理和运营&lt;/li&gt;
&lt;li&gt;通过网络进行通信&lt;/li&gt;
&lt;li&gt;可以跨机器共享&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输入： 指向 Cursor 外部 MCP 服务器的 /sse 端点的 URL&lt;/p&gt;
&lt;p&gt;对于 SSE 服务器，URL 应该是 SSE 端点的 URL，例如 &lt;a href=&#34;http://example.com:8000/sse&#34;&gt;http://example.com:8000/sse&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每种传输类型都有不同的用例，stdio 对于本地开发来说更简单，而 SSE 为分布式团队提供了更大的灵活性。&lt;/p&gt;
&lt;h2 id=&#34;配置-mcp-服务器&#34;&gt;配置 MCP 服务器&lt;/h2&gt;
&lt;p&gt;MCP 配置文件使用 JSON 格式，结构如下：&lt;/p&gt;


  
  
  
&lt;ul class=&#34;nav nav-tabs justify-content-end&#34; id=&#34;tabs-0&#34; role=&#34;tablist&#34;&gt;
  &lt;li class=&#34;nav-item&#34;&gt;
      &lt;button class=&#34;nav-link active&#34;
          id=&#34;tabs-00-00-tab&#34; data-bs-toggle=&#34;tab&#34; data-bs-target=&#34;#tabs-00-00&#34; role=&#34;tab&#34;
          data-td-tp-persist=&#34;cli server-node.js&#34; aria-controls=&#34;tabs-00-00&#34; aria-selected=&#34;true&#34;&gt;
        CLI Server-Node.js
      &lt;/button&gt;
    &lt;/li&gt;&lt;li class=&#34;nav-item&#34;&gt;
      &lt;button class=&#34;nav-link&#34;
          id=&#34;tabs-00-01-tab&#34; data-bs-toggle=&#34;tab&#34; data-bs-target=&#34;#tabs-00-01&#34; role=&#34;tab&#34;
          data-td-tp-persist=&#34;cli server-python&#34; aria-controls=&#34;tabs-00-01&#34; aria-selected=&#34;false&#34;&gt;
        CLI Server-Python
      &lt;/button&gt;
    &lt;/li&gt;&lt;li class=&#34;nav-item&#34;&gt;
      &lt;button class=&#34;nav-link&#34;
          id=&#34;tabs-00-02-tab&#34; data-bs-toggle=&#34;tab&#34; data-bs-target=&#34;#tabs-00-02&#34; role=&#34;tab&#34;
          data-td-tp-persist=&#34;sse server&#34; aria-controls=&#34;tabs-00-02&#34; aria-selected=&#34;false&#34;&gt;
        SSE Server
      &lt;/button&gt;
    &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;tab-content&#34; id=&#34;tabs-0-content&#34;&gt;
    &lt;div class=&#34;tab-body tab-pane fade show active&#34;
        id=&#34;tabs-00-00&#34; role=&#34;tabpanel&#34; aria-labelled-by=&#34;tabs-00-00-tab&#34; tabindex=&#34;0&#34;&gt;
        &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// 该示例演示了使用 stdio 格式的 MCP 服务器
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Cursor 会自动为您运行该进程 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// 该示例使用 Node.js 服务器，使用 `npx` 运行
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;server-name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;npx&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;-y&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;mcp-server&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;API_KEY&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;tab-body tab-pane fade&#34;
        id=&#34;tabs-00-01&#34; role=&#34;tabpanel&#34; aria-labelled-by=&#34;tabs-00-01-tab&#34; tabindex=&#34;0&#34;&gt;
        &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// 本例演示了使用 stdio 格式的 MCP 服务器
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Cursor 会自动为您运行该进程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// 该示例使用 Python 服务器，用 `python` 运行
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;server-name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;npx&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;-y&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;mcp-server&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;API_KEY&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;tab-body tab-pane fade&#34;
        id=&#34;tabs-00-02&#34; role=&#34;tabpanel&#34; aria-labelled-by=&#34;tabs-00-02-tab&#34; tabindex=&#34;0&#34;&gt;
        &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// 本例演示了使用 SSE 格式的 MCP 服务器
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// 用户应手动设置和运行服务器
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// 可以联网，让其他人也能访问它
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;server-name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http://localhost:3000/sse&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;API_KEY&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;env 字段允许您指定 MCP 服务器进程可用的环境变量。这对于管理 API 密钥和其他敏感配置特别有用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;配置位置&#34;&gt;配置位置&lt;/h3&gt;
&lt;p&gt;您可以将此配置放置在两个位置，具体取决于您的用例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;项目配置&lt;/p&gt;
&lt;p&gt;对于特定于项目的工具，请在项目目录中创建 &lt;code&gt;.cursor/mcp.json&lt;/code&gt; 文件。这允许您定义仅在特定项目中可用的 MCP 服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;全局配置&lt;/p&gt;
&lt;p&gt;对于要在所有项目中使用的工具，请在 home 目录中创建一个 &lt;code&gt;~/.cursor/mcp.json&lt;/code&gt; 文件。这使得 MCP 服务器在您的所有 Cursor 中可用。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;在-agent-中使用-mcp-工具&#34;&gt;在 Agent 中使用 MCP 工具&lt;/h2&gt;
&lt;p&gt;Composer Agent 将自动使用 MCP 设置页面上的可用工具下列出的任何 MCP 工具（如果确定它们相关）。要有意地提示工具的使用，只需告诉代理使用该工具，通过名称或描述来引用它。&lt;/p&gt;
&lt;h3 id=&#34;工具批准&#34;&gt;工具批准&lt;/h3&gt;
&lt;p&gt;默认情况下，当代 agent 要使用 MCP 工具时，它将显示一条消息，要求您批准。您可以使用工具名称旁边的箭头展开消息，并查看 agent 使用哪些参数调用工具。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/mcp-mars-request.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;yolo-模式&#34;&gt;Yolo 模式&lt;/h4&gt;
&lt;p&gt;您可以启用 Yolo 模式，以允许 agent 自动运行 MCP 工具，而无需批准，类似于终端命令的执行方式。阅读更多关于 Yolo 模式和如何启用它在这里 .&lt;/p&gt;
&lt;h3 id=&#34;工具响应&#34;&gt;工具响应&lt;/h3&gt;
&lt;p&gt;当使用工具时，cursor 将在聊天中显示响应。此图像显示了示例工具的响应，以及工具调用参数和工具调用响应的扩展视图。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/mcp-mars-response.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;限制&#34;&gt;限制&lt;/h2&gt;
&lt;p&gt;MCP 是一个非常新的协议，仍处于积极的发展中。有一些已知的警告要注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;工具数量： 一些 MCP 服务器，或用户与许多 MCP 服务器活动，可能有许多工具可供 cursor 使用。目前，Cursor 只会将前 40 个工具发送给 agent。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;远程开发： Cursor 直接从本地机器与 MCP 服务器通信，可以直接通过 stdio 或使用 sse 通过网络。因此，当通过 SSH 或其他开发环境访问 Cursor 时，MCP 服务器可能无法正常工作。我们希望在未来的版本中改进这一点。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;mcp 资源：MCP 服务器提供两种主要功能：工具和资源。今天，Cursor 中提供了工具，允许 Cursor 执行 MCP 服务器提供的工具，并在其后续步骤中使用输出。但是，Cursor 中还不支持资源。我们希望在未来的版本中添加资源支持。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
