现在很火的MCP是什么? 一文教会你使用&开发

前文分享了skill相关编写和使用方法,有兴趣的可以点击下方链接查看。

juejin.cn/post/763408...

今天分享的是MCP服务,那具体什么是MCP服务呢?

MCP是什么?

MCP是什么,其实最开始个人理解起来也是挺绕的,如果你也一样,可以看看下面的解释。

标准解释:

MCP(Model Context Protocol)是一种开放标准协议,目的就是为大模型提供标准化的外部工具和上下文集成方式。

大白话解释:

你可以将MCP服务理解成传统的API接口,使用MCP就像是在调用API接口。

MCP如何使用

如果你理解了MCP是什么,那我们就来看看它是如何使用的?谁调用它的?

MCP调用流程

既然都说了mcp可以理解成API接口服务,所以MCP的调用也非常简单,它的调用者你可以笼统的理解成agent自己,也可以理解成skill在调用都是没有问题的。

所以从这一点来看,你也可以进一步了解到skill和mcp本质的区别,skill是调用mcp服务的角色,而mcp都是服务端集成的特定的能力。

详细的流程如下图所示:

MCP集成

不同ai工具集成方式有所不同,这里以Android Studio中用得较多的Lingma插件为例:

配置路径: 个人设置 -> MCP服务

点击进入MCP服务,在页面右上角点击"添加"按钮,选择你熟悉的配置模式进行配置即可,简单一点就选择手动添加:

点击手动添加会弹出配置页面,根据内容项目添加目标mcp服务相关信息即可。

最后添加完成后,可以随时在列表右侧进行mcp服务的启用或者关闭,还是非常方便的。

自定义MCP服务

除开一些公开免费的MCP服务外,我们也可以自己开发一套专属的MCP服务,目前也有一些框架支持快速开发,包括让AI给你写一套都是可以的。

下面简单介绍一下如何利用FastMCP框架快速开发你的专属MCP服务:

环境依赖

  • Python环境,如果没有请安装

  • 安装FastMCP框架

    pip install fastmcp

创建服务实例

ini 复制代码
from fastmcp import FastMCP

mcp = FastMCP("服务名称")

定义工具(Tools)

使用 @mcp.tool() 装饰器将普通的 Python 函数转化为 MCP 工具。这是开发中最关键的一步:

  • 函数名:

AI调用的工具名

  • 类型注解

函数参数的类型声明以及返回声明,有利于AI以明确形式输入和返回数据。

  • 文档描述

这个比较关键,AI会根据你的描述内容来理解这个工具的用途以及什么时候调用,当然如果你知道方法名,明确ai调用某一个方法的情况另当别论。

暴露接口

在脚本末尾使用run方法自动处理所有协议细节(如STDIO传输),使服务能够被AI客户端唤起。

ini 复制代码
if __name__ == "__main__":
    mcp.run()

完整实例

以下是一个支持AI Agent打开浏览器获取指定网址网页内容的工具代码:

python 复制代码
import asyncio
from fastmcp import FastMCP
from playwright.async_api import async_playwright

# Create an MCP server
mcp = FastMCP("WebCrawler")

@mcp.tool()
async def fetch_url_content(url: str) -> str:
    """
    Fetch the text content of a given URL using a headless browser.
    
    Args:
        url: The URL to fetch content from.
    """
    async with async_playwright() as p:
        # Launch browser
        browser = await p.chromium.launch(headless=True)
        context = await browser.new_context(
            user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
        )
        page = await context.new_page()
        
        try:
            # Navigate to the URL
            await page.goto(url, wait_until="networkidle", timeout=30000)
            
            # Get the page content (text only for cleaner output)
            content = await page.evaluate("() => document.body.innerText")
            
            # Get the title
            title = await page.title()
            
            return f"Title: {title}\n\nContent:\n{content}"
        except Exception as e:
            return f"Error fetching {url}: {str(e)}"
        finally:
            await browser.close()

if __name__ == "__main__":
    mcp.run()

服务使用

MCP服务工具编写好后,配置到你的AI MCP服务中即可正常使用,如果你用的是Lingma按照上述MCP集成流程集成即可。

然后你在agent模式下就可以正常使用了,比如我这里:

最后

你看其实mcp的开发和使用相对还是比较简单的,针对一些复杂的功能,我们大可以让ai帮我们写这个mcp服务,所以你懂不懂具体实现都不重要。

你们平时都用哪些MCP服务呢?

有哪些MCP服务提供平台呢?

欢迎留言、私信分享交流哟~

相关推荐
我也曾把你举过头顶40 分钟前
Skill/MCP/RAG/Agent/OpenClaw是什么
人工智能·ai agent·mcp
有梦想的小何1 小时前
Cursor AI 编程实战(篇一):Prompt 与案例总结
java·linux·prompt·ai编程
wsad05322 小时前
Claude Code 三件套终极指南:CC-Switch + GLM-5.1 + OpenSpec + Superpowers 融合实战
ai编程·openspec·superpowers
爱吃的小肥羊2 小时前
Codex 手机端连接教程:三分钟搞定,附完整步骤
aigc·openai·ai编程
小林学AI3 小时前
Claude Code 斜杠命令实战使用教程
ai编程
莪_幻尘3 小时前
一份 AGENTS.md,让 AI 代码规范率从 60% 飙升到 95%
前端·ai编程·cursor
youcans_3 小时前
【跟我学 AI 编程】(5) Claude Code 快速指南
人工智能·大语言模型·ai编程·claude code
Hello_Embed4 小时前
libmodbus 移植到 STM32H5
笔记·stm32·单片机·嵌入式硬件·嵌入式·ai编程
爱吃的小肥羊4 小时前
刚刚,Codex 上线手机端,免费用户也能用!
aigc·openai·ai编程
DogDaoDao5 小时前
【GitHub】NousResearch/Hermes-Agent 深度技术解析:自我进化的AI Agent新范式
人工智能·深度学习·程序员·大模型·github·ai编程·ai agent