首页 / 文章

赋予本地AI模型“手”与“眼”的10台MCP服务器

为本地AI开发者提供的10台MCP服务器,涵盖文件系统、Git和数据库功能以及搜索、获取和浏览器控制能力,并附有关于权限和安全使用的说明。

发布者:REACTAPP.TOP阅读约 7 分钟1595 词

来源: 10 MCP Servers Every Local AI Developer Should Install

最初,能在本地运行的强大模型体验相当不错。无需调用云端服务,也无需每月付费。但随后就出现了第一个真正的开发任务:修复前一天晚上编写的 Python 脚本中的错误。此时,这个看似聪明的本地模型却显得毫无用处——它无法查看本地文件,无法阅读最新的在线文档,也无法访问 GitHub 仓库或查询数据库。

于是工作流程就退化成了手工操作:打开编辑器,找到有问题的代码,复制后粘贴到聊天界面,等待回复,再复制修复后的代码,回到编辑器中替换原有代码,如此反复。模型拥有“大脑”,而开发者则不得不充当它的眼睛、双手和键盘。

正是这一缺口被模型上下文协议(MCP)填补了。Anthropic在2024年推出了这一开放标准,让人工智能应用能够连接外部工具、文件、数据库、API以及其他数据源。最容易理解的类比就是为人工智能设计的USB接口——无需为每个模型和每款工具单独构建集成方案,MCP便为他们提供了通用的通信方式。对于那些在本地运行模型的人来说,这一变化意义重大,甚至值得专门了解相关配置。

1. 文件系统

从这份列表中选择安装单台服务器的用户,或许应该从这里开始。本地运行的模型并不知道硬盘上存有什么内容。文件系统服务器能够让用户以受控方式访问其选定的文件和目录。

想象一个包含数十个文件的混乱 Python 项目。开发人员无需将所有内容粘贴到聊天框中,只需让模型查看后端文件夹,找出认证令牌为何会过早失效。模型会检查允许访问的文件,分析代码片段之间的交互方式,从而帮助定位问题根源。它还能创建文件、修改代码、整理文件夹以及分析配置。

权限控制是关键。只需授予服务器其真正需要的目录权限,因为允许其无限制访问整台机器往往并非明智之举。

2. Firecrawl

任何进行过网页抓取的人都知道网站可能带来的麻烦。有的网站使用结构清晰的 HTML,有的依赖 JavaScript,还有些在半年后更改布局,导致所有精心编写的选择器都失效。

Firecrawl负责爬取和提取数据,输出更易于AI系统处理的格式化内容。通过MCP集成功能,用户可以将某个网站交给模型,让其获取并理解相关部分,例如阅读图书馆的文档并解释认证机制。模型可以直接获得所需资料,无需手动打开页面或将其复制粘贴到本地模型中。对于那些经常处理文档、研究资料及网络数据的人来说,这能大幅节省时间。

3. SQLite

SQLite在开发领域随处可见。它体积轻巧,无需数据库服务器,被广泛应用于原型设计、桌面应用、测试以及小型项目中。不过本地模型仍无法直接打开数据库,此时SQLite服务器便起到了桥梁作用。

通过一个能在本地存储数千条记录的应用程序,开发者无需手动编写SQL语句,即可查询诸如“本月出现频率最高的五种错误类型是什么”之类的问题。该模型会分析数据库结构,生成合适的查询语句并执行它,同时解释查询结果。在测试本地应用程序时,如果希望模型使用真实项目数据而非虚构示例进行操作,这种方式尤为方便。

4. PostgreSQL

SQLite适用于规模较小的项目,但许多重要应用程序都是基于PostgreSQL运行的。PostgreSQL服务器能让助手通过MCP与此类数据库进行交互。

假设某个Web应用程序突然出现大量登录失败的情况。开发者无需手动查询表格并编写多条SQL语句,只需询问在过去的48小时内哪些用户的登录失败次数最多即可。该模型会分析现有的数据结构,自动生成相应的查询语句,在允许的连接环境下执行它,并汇总结果。

数据库权限必须得到妥善管理。对于几乎所有AI工作流而言,从只读访问开始要安全得多,绝不能允许无限制的写入操作。

5. GitHub

许多现代开发工作都在GitHub上进行,因此将其与模型集成能带来显著效益。根据权限设置和实现方式的不同,这种集成可以展示代码库、问题记录、拉取请求、提交记录及相关信息。

想象一下,当你收到一个涉及30个文件的拉取请求时,开发者不必立即逐一查看这些文件,而是可以要求获取变更摘要以及需要安全审查的模块列表。该模型会分析相关数据,为审查提供起点。它虽不能替代经验丰富的开发者,但能大幅减少重复性的调查工作。

本地模型的一个重大缺陷在于其内置知识会逐渐过时。模型可能了解去年某个Python库的用法,但无法保证它知晓本周的最新版本情况。

The Brave Search服务器可提供辅助网页搜索功能。开发者可以询问当前推荐的软件包配置方式,模型会查询实时信息而非仅依赖训练数据。对于重要的软件开发工作而言,文档、API、软件包版本及最佳实践都在不断变化,因此这种机制十分必要。本地模型在保持隐私优势的同时,还能获取实时网络信息。

7. Puppeteer

网页抓取并不总是意味着下载HTML文件。现代网站高度依赖JavaScript、按钮、表单以及动态内容,这时就需要像Puppeteer这样的浏览器自动化工具。借助Puppeteer服务器,模型可以通过其支持的自动化功能来操控浏览器。

某项任务可能是打开一个网站,导航至其文档页面并找到与身份验证相关的配置示例。该模型并非仅读取静态内容,而是在真实的浏览器环境中运行。对于已经熟悉浏览器自动化的开发者来说,这为本地代理提供了诸多有趣的应用可能。

8. Git

Git与GitHub虽有关联但并不相同。Git是运行在开发环境中的版本控制系统,而Git服务器则能让模型处理本地仓库中的提交记录、分支以及各种变更。

它在调试过程中发挥作用。开发者可能会询问上两次提交之间有哪些变化,以及是哪项更改可能引发了错误。没有MCP的话,就需要运行多个git命令并将输出结果粘贴到聊天窗口中;而有了它,助手可以直接查看代码库的上下文。模型不再将代码视为孤立的文件,而是能够理解其背后的历史脉络。

9. 顺序思维

并非每个问题都需要额外的数据来源。有时问题在于推理过程。复杂的调试涉及多种可能性、假设以及中间决策,而顺序思维服务器能为模型提供一种结构化的方法,将难题分解为更小的步骤来处理。

与其只问“为什么应用程序会崩溃?”,开发者可以交付更全面的调试任务,包括日志、依赖项、近期更改以及可能的成因。这种结构化的流程能引导模型有条不紊地工作,而非直接选择第一个听起来有说服力的解释。这并非魔法,也无法保证推理绝对正确,但对于复杂的多步骤任务而言,这种结构确实能提供帮助。

10. 获取数据

有时使用完整的搜索引擎或爬虫平台反而过于复杂。既然只有某个URL,模型只需读取它即可。采用“获取数据”模式的服务器可以检索页面并让模型对其进行总结,例如通过阅读API文档页并解释其中的认证示例。

它与搜索工具配合使用效果很好:搜索服务器负责找到合适的页面,而获取服务器则负责调取模型需要理解的特定内容。这种功能很简单,而简单的功能往往会被持续使用。

服务器结合后会发生什么变化

MCP的有趣之处不在于某单个服务器,而在于多个服务器协同工作时所产生的效果。想象一个能够访问项目文件、Git仓库、GitHub问题记录、数据库、浏览器以及实时网页的本地模型。它可以执行的任务包括:调查登录系统出故障的原因、查看最近的Git更改、检查相关的Python文件、审查数据库错误、查找认证库的当前文档,然后提出修复方案。

这与过去粘贴代码后询问问题所在的做法截然不同。该模型不再仅仅是回答问题,它正在变成一种能够在开发环境中执行操作的智能体。

有一个需要注意的点:MCP并不能自动确保任何事物都是安全的。每一个安装的服务器都属于额外的软件,可能会获取数据、文件或服务。建议选择可信的实现方案,仔细查看权限设置,放弃不必要的写权限,切勿赋予服务器超出其功能所需的权限。其目的并非控制整台计算机,而是仅提供足够的使用权限以发挥其作用。

超越聊天窗口

本地 AI 曾有一项令人沮丧的限制:强大的模型虽可在个人硬件上私有运行,却仍被困在聊天窗口中。MCP 开始打破这一壁垒。一个功能强大的本地模型加上合适的服务器,就能成为极其出色的开发助手。因此,不必询问本地模型掌握了什么知识,而应询问它能完成什么任务。