静态网页生成工具

利用MCP和LangChain技术,根据提供的业务信息自动生成个性化静态网页的工具。

  • by rroblf01
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 rroblf01/MCP-proof-of-concept

使用说明

概念证明:使用MCP和LangChain生成静态页面

这个项目是他使用的概念的证明 MCP(模型上下文协议) y LangChain 根据提供的有关业务的信息生成个性化静态网页。该应用程序结合了自然语言处理工具和动态内容生成,以创建自动化体验。

描述

该应用程序以有关企业的详细信息为输入,例如其名称、描述、服务、产品、位置、风格和首选颜色。根据这些信息,它自动生成:

  1. HTML文件(index.html)它包括头部、身体和脚。
  2. CSS文件(styles.css)页面的自定义样式。

项目使用 LangChain 用于与语言模型和 主控程序 用于管理工具和动态内容生成。

项目结构

  • main.py:协调网站生成的主文件。
  • server.py:MCP服务器,定义生成和保存HTML和CSS内容的工具。
  • pyproject.toml:项目配置文件。
  • README.md:这个文件。

要求

  • 让LM Studio处于服务器模式
  • 拥有OpenAI/GPT-OSS-20B模型
  • 指定的依赖项 pyproject.toml

安装

  1. 克隆此存储库:

    git clone <URL_DEL_REPOSITORIO>
    cd <NOMBRE_DEL_REPOSITORIO>
    
  2. 安装依赖项:

    uv venv && source .venv/bin/activate && uv lock
    

使用

  1. 执行主脚本:

    python main.py
    
  2. 生成的文件(index.html y styles.css)它们将保存在文件夹中 dist.

MCP工具

MCP服务器(server.py)定义以下工具:

  • generate_index:结合标题、正文和脚注生成完整的HTML文件。
  • generate_header:生成带有标题和导航链接的HTML标题。
  • generate_body:生成包含服务、产品和业务描述部分的HTML正文。
  • generate_footer:生成带有联系信息的HTML页脚。
  • save_file:将内容保存在文件夹内的文件中 dist.

输入示例

business_info = BusinessInfo(
    name="Carnicería Cuencana",
    description="Carnicería tradicional en Cuenca especializada en carnes frescas y embutidos artesanales.",
    email="info@carniceriacuencana.es",
    services=[
        "Entrega a domicilio",
        "Cortes personalizados",
        "Asesoramiento en recetas",
    ],
    products=[
        "Carne de ternera",
        "Carne de cerdo",
        "Embutidos caseros",
        "Pollo de corral",
    ],
    city="Cuenca",
    job="carnicería",
    job_description="ofrecer carnes frescas, de calidad y embutidos artesanales a sus clientes",
    style="tradicional, limpio y acogedor",
    colors="rojo, blanco y tonos madera",
)

输出示例

  • index.html:生成内容的HTML文件。
  • styles.css:带有自定义样式的CSS文件。