<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>MCP on FF的实验笔记</title>
    <link>http://blog.memcd.com/tags/mcp/</link>
    <description>Recent content in MCP on FF的实验笔记</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>(c) 1998 - 2026</copyright>
    <lastBuildDate>Sun, 12 Oct 2025 20:41:28 +0800</lastBuildDate>
    <atom:link href="http://blog.memcd.com/tags/mcp/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>MCP：使用MCP访问MySQL数据库</title>
      <link>http://blog.memcd.com/posts/ai/2025-1012-mcp-mysql/</link>
      <pubDate>Sun, 12 Oct 2025 20:41:28 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2025-1012-mcp-mysql/</guid>
      <description>&lt;h1 id=&#34;mcp使用mcp访问mysql数据库&#34;&gt;MCP：使用MCP访问MySQL数据库&lt;/h1&gt;&#xA;&lt;p&gt;该服务使大语言模型能够连接MySQL数据库并执行只读查询。下面开始实验一下。&lt;/p&gt;&#xA;&lt;h2 id=&#34;环境准备&#34;&gt;环境准备&lt;/h2&gt;&#xA;&lt;p&gt;可以按照上一篇文章《MCP：使用MCP访问PostgreSQL数据库》的方法进行MCP配置，或者也可以干脆直接让大模型自己完成MCP配置。参考提示词：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;“WindSurf的MCP配置文件在哪里”&lt;/li&gt;&#xA;&lt;li&gt;“在这个MCP配置文件中，增加MySQL数据库的配置”&lt;/li&gt;&#xA;&lt;li&gt;“测试MySQL的MCP配置是否正确”&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这样，大模型自己就能完成MCP配置了，不需要自己再去看MCP的配置说明文档。&lt;/p&gt;&#xA;&lt;h2 id=&#34;对话数据库信息&#34;&gt;对话数据库信息&lt;/h2&gt;&#xA;&lt;h3 id=&#34;近期有无用户登录&#34;&gt;近期有无用户登录？&lt;/h3&gt;&#xA;&lt;p&gt;同样，可以使用MCP协议来查询数据库中记录的用户登录系统的情况。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;近期有无用户登录？&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;大模型自动调用MCP后回复：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;我来查询一下近期的用户登录情况。让我检查 user 和 user_token 表来了解用户活动。&#xA;&#xA;查询用户表结构了解登录相关字段&#xA;查询近期用户登录记录&#xA;分析用户活动情况&#xA;&#xA;根据查询结果，近期确实有用户登录活动：&#xA;&#xA;### 用户登录情况&#xA;&#xA;- **活跃用户**: 1个用户（admin）&#xA;- **总Token数**: 3个&#xA;- **用户ID**: 123456789&#xA;&#xA;### 登录详情&#xA;&#xA;| 系统模块 | Token过期时间 | 状态 |&#xA;|---------|--------------|------|&#xA;| SystemA | 2025-09-19 11:26:05 | Active |&#xA;| SystemB | 2025-09-15 16:25:38 | Active |&#xA;| SystemC | 2025-09-08 13:12:59 | Expired |&#xA;&#xA;### 分析结果&#xA;&#xA;- **最近登录**: 最新的token创建时间显示用户在近期有登录活动&#xA;- **活跃状态**: 目前有2个活跃的token，说明用户在不同系统模块中都有登录会话&#xA;- **系统使用**: 用户主要使用了3个系统模块：&#xA;  - SystemA（A系统）- 当前活跃&#xA;  - SystemB（B系统）- 当前活跃&#xA;  - SystemC（C系统）- 已过期&#xA;&#xA;**结论**: 是的，近期有用户登录，admin用户目前仍有活跃的登录会话。&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;AI通过MCP自动查询了数据库的用户登录信息，并且自动总结了用户登录过哪些子系统。期间，我并未向用户提供表名和表的用途等信息，大模型自己通过对表名使用的词语，理解了其实际含义。如果数据库在设计时符合常见的标准方法，那么大模型就可以像一名有经验的工程师一样，一眼就能理解数据库结构和含义。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MCP: 和AI的沟通记录</title>
      <link>http://blog.memcd.com/posts/ai/2025-0914-mcp-llm/</link>
      <pubDate>Sun, 14 Sep 2025 14:01:27 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2025-0914-mcp-llm/</guid>
      <description>&lt;h1 id=&#34;以下是和ai的沟通记录&#34;&gt;以下是和AI的沟通记录&lt;/h1&gt;&#xA;&lt;h2 id=&#34;ai的函数调用function-calling技术&#34;&gt;AI的“函数调用”（Function Calling）技术&lt;/h2&gt;&#xA;&lt;p&gt;好的，我们来详细介绍一下 AI 的“函数调用”（Function Calling）技术。&lt;/p&gt;&#xA;&lt;p&gt;什么是AI的“函数调用”（Function Calling）？&lt;/p&gt;&#xA;&lt;p&gt;“函数调用”（Function Calling），也常被称为“工具使用”（Tool Use）或“插件”（Plugins），是现代大型语言模型（LLMs）的一项强大能力。它允许 LLM 不仅仅是生成文本，更能够识别用户意图，判断何时需要调用外部工具或 API 来获取信息或执行操作，并生成调用这些工具所需的规范化参数。&lt;/p&gt;&#xA;&lt;p&gt;简单来说，就是让 LLM 能够像程序员一样，理解什么时候需要调用一个“函数”，以及这个“函数”需要哪些“参数”才能运行，然后把这些信息“告诉”给一个外部系统去实际执行。&lt;/p&gt;&#xA;&lt;p&gt;为什么需要函数调用？&lt;/p&gt;&#xA;&lt;p&gt;传统的 LLM 主要擅长文本生成和理解，但它们有几个局限性：&lt;/p&gt;&#xA;&lt;p&gt;1、  缺乏实时信息： LLM 的知识库是基于其训练数据，通常不是实时的。它们不知道最新的新闻、股价、天气等。&#xA;2、  无法执行外部操作： LLM 无法直接发送邮件、订购商品、查询数据库、控制设备等。&#xA;3、  幻觉（Hallucination）： 当 LLM 无法获取准确信息时，可能会“编造”答案。&#xA;4、  知识边界： LLM 只能回答其训练数据中包含的问题，对于特定领域或内部系统的数据无能为力。&lt;/p&gt;&#xA;&lt;p&gt;函数调用技术正是为了弥补这些局限性。通过调用外部工具，LLM 可以：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;获取实时和准确的信息： 调用天气 API、股票 API、数据库查询等。&lt;/li&gt;&#xA;&lt;li&gt;执行实际操作： 调用邮件发送 API、日程安排 API、智能家居控制 API 等。&lt;/li&gt;&#xA;&lt;li&gt;扩展知识边界： 访问企业内部数据库、专属知识库等。&lt;/li&gt;&#xA;&lt;li&gt;提高回答的准确性和可靠性： 基于外部工具返回的真实数据进行回复。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;函数调用的工作原理（简化流程）：&lt;/p&gt;&#xA;&lt;p&gt;1、  定义工具/函数： 开发者首先需要向 LLM 描述（通常以 JSON Schema 格式）哪些外部工具是可用的，以及这些工具的功能、名称和所需参数。这就像给 LLM 一本“工具手册”。&#xA;* 示例工具定义： 一个天气查询工具，函数名为 &lt;code&gt;get_current_weather&lt;/code&gt;，需要一个 &lt;code&gt;location&lt;/code&gt; 参数。&#xA;&lt;code&gt;json { &amp;quot;name&amp;quot;: &amp;quot;get_current_weather&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;获取指定地点的当前天气信息&amp;quot;, &amp;quot;parameters&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;, &amp;quot;properties&amp;quot;: { &amp;quot;location&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;地点，例如：旧金山，东京&amp;quot; } }, &amp;quot;required&amp;quot;: [&amp;quot;location&amp;quot;] } } &lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>MCP：使用MCP访问PostgreSQL数据库</title>
      <link>http://blog.memcd.com/posts/ai/2025-0913-mcp-postgre/</link>
      <pubDate>Sat, 13 Sep 2025 19:15:20 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2025-0913-mcp-postgre/</guid>
      <description>&lt;!-- 大语言模型可以根据用户需求，调用PostgreSQLMCP等来获取数据库信息。 --&gt;&#xA;&lt;h1 id=&#34;mcp使用mcp访问postgresql数据库&#34;&gt;MCP：使用MCP访问PostgreSQL数据库&lt;/h1&gt;&#xA;&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;p&gt;上一篇文章《MCP: 什么是MCP》已经介绍了MCP的基本概念，下面来实操一个MCP服务的使用。&lt;/p&gt;&#xA;&lt;p&gt;PostgreMCP 这个服务可以使大语言模型能够检查数据库模式并执行只读查询。下面开始实验一下。&lt;/p&gt;&#xA;&lt;h2 id=&#34;环境准备&#34;&gt;环境准备&lt;/h2&gt;&#xA;&lt;p&gt;安装过程会自动从网络拉包，例如：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;npx -y @modelcontextprotocol/server-postgres postgresql://username:password@IP:5432/dbname&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果使用的是docker也是同理，所以国内网络不好的话有可能一次装不成功，多试几次即可。&lt;/p&gt;&#xA;&lt;!-- 再构建一个测试用的postgreSQL数据库，创建一个登录记录表并填充测试数据。 --&gt;&#xA;&lt;h3 id=&#34;windsurf&#34;&gt;Windsurf&lt;/h3&gt;&#xA;&lt;p&gt;安装：&lt;code&gt;Plugin Store / PostgreSQL / Install&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;配置：点击PostgreSQL，或者在对话框的MCP中找到PostgreSQL，点击Configure，粘贴配置（会自动生成）&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#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;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#062873;font-weight:bold&#34;&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;: {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#062873;font-weight:bold&#34;&gt;&amp;#34;postgresql&amp;#34;&lt;/span&gt;: {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#062873;font-weight:bold&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;npx&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#062873;font-weight:bold&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;: [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;-y&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;@modelcontextprotocol/server-postgres&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;postgresql://username:password@IP:5432/dbname&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#062873;font-weight:bold&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;: {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配置格式的说明来自于：&lt;code&gt;https://github.com/modelcontextprotocol/servers-archived/tree/main/src/postgres&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;cursor&#34;&gt;cursor&lt;/h3&gt;&#xA;&lt;p&gt;cursor用户可以在如下界面上安装：&#xA;&lt;code&gt;cursor / Setting / MCP / Add new global MCP Server&lt;/code&gt;&#xA;填写上面的json配置即可&lt;/p&gt;&#xA;&lt;h2 id=&#34;使用方法&#34;&gt;使用方法&lt;/h2&gt;&#xA;&lt;p&gt;配置好Postgre MCP，就可以使用自然语言对PostgreSQL数据库进行查询操作了。&lt;/p&gt;&#xA;&lt;h3 id=&#34;用法举例询问系统登录情况&#34;&gt;用法举例：询问系统登录情况&lt;/h3&gt;&#xA;&lt;h4 id=&#34;prompt&#34;&gt;Prompt&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;帮我看下数据库记录，今天都有哪些用户登录了系统？&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;ai自动调用mcp执行数据库查询&#34;&gt;AI自动调用MCP执行数据库查询&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;我需要查找用户登录记录。首先，我需要找到存储登录记录的表。让我查询数据库中可能包含登录信息的表。&#xA;&#xA;MCP Tool: postgresql / query&#xA;Ran with these arguments:&#xA;{&#xA;  &amp;#34;sql&amp;#34;: &amp;#34;SELECT table_name FROM information_schema.tables WHERE table_schema = &amp;#39;public&amp;#39; AND (table_name LIKE &amp;#39;%login%&amp;#39; OR table_name LIKE &amp;#39;%log%&amp;#39; OR table_name LIKE &amp;#39;%user%&amp;#39; OR table_name LIKE &amp;#39;%auth%&amp;#39;);&amp;#34;&#xA;}&#xA;&#xA;Output&#xA;[&#xA;  {&#xA;    &amp;#34;table_name&amp;#34;: &amp;#34;log&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;table_name&amp;#34;: &amp;#34;user_role&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;table_name&amp;#34;: &amp;#34;user&amp;#34;&#xA;  }&#xA;]&#xA;&#xA;我找到了几个可能包含登录信息的表：log、user_role 和 user。其中 log 表最可能包含登录记录，让我查询今天的登录记录。&#xA;&#xA;首先，我需要查看 log 表的结构，以确定它包含哪些字段：&#xA;&#xA;MCP Tool: postgresql / query&#xA;Ran with these arguments:&#xA;{&#xA;  &amp;#34;sql&amp;#34;: &amp;#34;SELECT column_name FROM information_schema.columns WHERE table_schema = &amp;#39;public&amp;#39; AND table_name = &amp;#39;log&amp;#39;;&amp;#34;&#xA;}&#xA;&#xA;Output&#xA;[&#xA;  {&#xA;    &amp;#34;column_name&amp;#34;: &amp;#34;log_id&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;column_name&amp;#34;: &amp;#34;log_title&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;column_name&amp;#34;: &amp;#34;log_content&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;column_name&amp;#34;: &amp;#34;log_type&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;column_name&amp;#34;: &amp;#34;created_at&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;column_name&amp;#34;: &amp;#34;log_user&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;column_name&amp;#34;: &amp;#34;log_ip&amp;#34;&#xA;  }&#xA;]&#xA;&#xA;现在我了解了 log 表的结构，它包含了用户登录所需的字段，如 log_user（用户）、log_ip（IP地址）、created_at（创建时间）等。让我查询今天的登录记录。&#xA;&#xA;今天是 2025-05-29，我需要查找今天的登录记录。我将使用 UNIX 时间戳来过滤今天的记录：&#xA;&#xA;{&#xA;  &amp;#34;sql&amp;#34;: &amp;#34;SELECT log_id, log_title, log_content, log_type, log_user, log_ip, to_timestamp(created_at) as login_time \nFROM log \nWHERE log_title LIKE &amp;#39;%登录%&amp;#39; \nAND created_at &amp;gt;= extract(epoch from date_trunc(&amp;#39;day&amp;#39;, current_date))\nORDER BY created_at DESC;&amp;#34;&#xA;}&#xA;&#xA;Output&#xA;[]&#xA;&#xA;看起来今天（2025-05-29）还没有用户登录记录。让我尝试查看最近几天的登录记录，以便为您提供更有用的信息：&#xA;&#xA;{&#xA;  &amp;#34;sql&amp;#34;: &amp;#34;SELECT log_id, log_title, log_content, log_type, log_user, log_ip, to_timestamp(created_at) as login_time \nFROM log \nWHERE log_title LIKE &amp;#39;%登录%&amp;#39; \nORDER BY created_at DESC\nLIMIT 10;&amp;#34;&#xA;}&#xA;&#xA;Output&#xA;&#xA;[&#xA;  {&#xA;    &amp;#34;log_id&amp;#34;: &amp;#34;160867d60986804408259a32a3935817&amp;#34;,&#xA;    &amp;#34;log_title&amp;#34;: &amp;#34;用户登录&amp;#34;,&#xA;    &amp;#34;log_content&amp;#34;: &amp;#34;用户（admin）登录&amp;#34;,&#xA;    &amp;#34;log_type&amp;#34;: &amp;#34;3&amp;#34;,&#xA;    &amp;#34;log_user&amp;#34;: &amp;#34;admin&amp;#34;,&#xA;    &amp;#34;log_ip&amp;#34;: &amp;#34;192.168.0.2&amp;#34;,&#xA;    &amp;#34;login_time&amp;#34;: &amp;#34;2025-05-28T05:41:47.000Z&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;log_id&amp;#34;: &amp;#34;38c1b815a6ba3979920039df787ccfbb&amp;#34;,&#xA;    &amp;#34;log_title&amp;#34;: &amp;#34;用户登录&amp;#34;,&#xA;    &amp;#34;log_content&amp;#34;: &amp;#34;用户（admin）登录&amp;#34;,&#xA;    &amp;#34;log_type&amp;#34;: &amp;#34;3&amp;#34;,&#xA;    &amp;#34;log_user&amp;#34;: &amp;#34;admin&amp;#34;,&#xA;    &amp;#34;log_ip&amp;#34;: &amp;#34;192.168.0.2&amp;#34;,&#xA;    &amp;#34;login_time&amp;#34;: &amp;#34;2025-05-28T05:22:57.000Z&amp;#34;&#xA;  },&#xA;  {&#xA;    &amp;#34;log_id&amp;#34;: &amp;#34;ec4b34e46106fb1b2a826e0c6f224595&amp;#34;,&#xA;    &amp;#34;log_title&amp;#34;: &amp;#34;用户登录&amp;#34;,&#xA;    &amp;#34;log_content&amp;#34;: &amp;#34;用户（admin）登录&amp;#34;,&#xA;    &amp;#34;log_type&amp;#34;: &amp;#34;3&amp;#34;,&#xA;    &amp;#34;log_user&amp;#34;: &amp;#34;admin&amp;#34;,&#xA;    &amp;#34;log_ip&amp;#34;: &amp;#34;192.168.0.2&amp;#34;,&#xA;    &amp;#34;login_time&amp;#34;: &amp;#34;2025-05-28T01:20:25.000Z&amp;#34;&#xA;  }&#xA;]&#xA;&#xA;用户登录记录查询结果&#xA;根据查询结果，今天（2025-05-29）暂时没有用户登录系统的记录。&#xA;&#xA;最近的登录记录是在昨天（2025-05-28）：&#xA;&#xA;| 登录时间 | 用户名 | IP地址 | 操作内容 | &#xA;|---------|-------|-------|---------| &#xA;| 2025-05-28 13:41:47 | admin | 192.168.0.2 | 用户登录 | &#xA;| 2025-05-28 13:22:57 | admin | 192.168.0.2 | 用户登录 | &#xA;| 2025-05-28 09:20:25 | admin | 192.168.0.2 | 用户登录 |&#xA;&#xA;所有最近的登录都是由超级管理员（admin）账户从同一个IP地址（192.168.0.2）进行的。&#xA;&#xA;需要我查询更早的登录记录或其他类型的系统操作记录吗？&#xA;&#xA;&#xA;Credits spent: 1 credit&#xA;Tool calls: 4 calls&#xA;Files changed: 0 files changed&#xA;Terminals created: 0 processes run&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;那么问题来了&#34;&gt;那么问题来了&lt;/h2&gt;&#xA;&lt;p&gt;AI是如何知道什么问题需要使用MCP协议，什么问题不使用的？&lt;/p&gt;</description>
    </item>
    <item>
      <title>MCP: 什么是MCP</title>
      <link>http://blog.memcd.com/posts/ai/2025-0908-mcp-introduction/</link>
      <pubDate>Mon, 08 Sep 2025 20:50:40 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2025-0908-mcp-introduction/</guid>
      <description>&lt;h1 id=&#34;mcp-什么是mcp&#34;&gt;MCP: 什么是MCP&lt;/h1&gt;&#xA;&lt;h2 id=&#34;介绍&#34;&gt;介绍&lt;/h2&gt;&#xA;&lt;p&gt;MCP是Model Context Protocol的缩写，直译就是模型上下文协议，也就是连接大语言模型上下文的协议。&#xA;详细介绍请看官方文档：https://anthropic.com/news/model-context-protocol&#xA;以及：https://modelcontextprotocol.io/docs/getting-started/intro&#xA;MCP协议由anthropic公司（Claude的公司）提出。&lt;/p&gt;&#xA;&lt;h3 id=&#34;为什么需要mcp&#34;&gt;为什么需要MCP&lt;/h3&gt;&#xA;&lt;p&gt;大语言模型虽然学习了大量的通用数据，但是对于用户自己的数据是一无所知的。&#xA;因为大模型在业务应用中，是浮于表面的，没法深入到用户业务内部，也无法和其他的系统打通。&lt;/p&gt;&#xA;&lt;p&gt;MCP就是为解决这个问题而生，通过将AI助手连接到数据所在系统（包括内容存储库、业务工具和开发环境），解决模型与数据隔绝的问题。&lt;/p&gt;&#xA;&lt;p&gt;这个连接的协议就是MCP。&lt;/p&gt;&#xA;&lt;p&gt;也就是说，MCP是用来连接大模型和数据的。&lt;/p&gt;&#xA;&lt;h3 id=&#34;一些mcp&#34;&gt;一些MCP&lt;/h3&gt;&#xA;&lt;p&gt;下面从MCP store摘抄几个MCP的说明，有助于理解MCP的作用：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Memory 让大模型可以在聊天中记住有关用户的信息&lt;/li&gt;&#xA;&lt;li&gt;Puppeteer 该服务器使llm能够在真实的浏览器环境中与网页交互，截取屏幕截图和执行JavaScript&lt;/li&gt;&#xA;&lt;li&gt;Fetch Web内容获取和转换，以有效地使用LLM&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 提供对PostgreSQL数据库的只读访问。该服务器使llm能够检查数据库模式并执行只读查询&lt;/li&gt;&#xA;&lt;li&gt;Slack 使Claude能够与Slack工作区进行交互&lt;/li&gt;&#xA;&lt;li&gt;Google Maps 位置服务，方向和地点细节&lt;/li&gt;&#xA;&lt;li&gt;Notion 和Notion的工作区、页面、数据库和注释进行交互&lt;/li&gt;&#xA;&lt;li&gt;SonarQube 用于代码质量和安全分析&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;工作原理&#34;&gt;工作原理&lt;/h3&gt;&#xA;&lt;p&gt;通过这一张图就看能懂MCP的工作原理了：本地的IDE，例如cursor，充当客户端，连接本地的MCP服务器，MCP服务器连接数据库实现功能。本地的MCP服务器用户无需操心，由IDE通过npx或者docker自动启动。&lt;/p&gt;&#xA;&lt;p&gt;如下图：&lt;/p&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;  graph LR&#xA;    subgraph &amp;#34;Your Computer&amp;#34;&#xA;        A[&amp;#34;Host with MCP Client: Claude, IDEs, Tools&amp;#34;] -- &amp;#34;MCP Protocol&amp;#34; --&amp;gt; B(&amp;#34;MCP Server A&amp;#34;)&#xA;        A -- &amp;#34;MCP Protocol&amp;#34; --&amp;gt; C(&amp;#34;MCP Server B&amp;#34;)&#xA;        A -- &amp;#34;MCP Protocol&amp;#34; --&amp;gt; D(&amp;#34;MCP Server C&amp;#34;)&#xA;&#xA;        B --&amp;gt; E[&amp;#34;Local Data Source A&amp;#34;]&#xA;        C --&amp;gt; F[&amp;#34;Local Data Source B&amp;#34;]&#xA;    end&#xA;&#xA;    subgraph &amp;#34;Internet&amp;#34;&#xA;        D -- &amp;#34;Web APIs&amp;#34; --&amp;gt; H[&amp;#34;Remote Service C&amp;#34;]&#xA;    end&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;下面就来实操一下。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
