机器聊天协议实现

MCPEX是一个基于Elixir的机器聊天协议(MCP)实现,提供开发环境设置、自动化构建和JSON处理功能,适用于Elixir开发者构建聊天协议相关应用。

  • by norbu09
  • Elixir
  • 本地部署
  • 更新于
在 GitHub 查看 norbu09/mcpex

使用说明

Mcpex

MCPEX是机器聊天协议(MCP)的Elixir实现。

开发设置

需求

  • Elixir 1.18.3与Erlang/OTP 27
  • 该项目包括 .tool-versions 与一起使用的文件 asdf

自动设置

要在开发VM中快速设置,请运行:

./setup.sh

此脚本将:

  1. 安装asdf版本管理器
  2. 使用asdf安装Erlang 27.0和Elixir 1.18.3(注意:Erlang编译可能需要10-20分钟)
  3. 安装Hex包管理器和钢筋
  4. 获取项目依赖关系
  5. 编译项目
  6. 运行测试以验证设置

注: Erlang编译可能需要花费大量时间(10-20分钟),因为它是从源代码构建的。您可以通过以下方式在另一个终端中监视进度:

tail -f ~/.asdf/plugins/erlang/kerl-home/builds/asdf_*/otp_build*.log

使用Makefile

该项目包括一个Makefile,用于简化常见的开发任务:

# Setup development environment
make setup

# Get dependencies
make deps

# Compile the project
make compile

# Run tests
make test

# Run the application
make run

# Format code
make format

# Run static code analysis
make lint

# Generate documentation
make docs

# Docker tasks
make docker-build
make docker-run
make docker-stop

# Show all available commands
make help

手动设置

如果您更喜欢手动设置:

  1. 安装asdf版本管理器:

    git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
    echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
    echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
    source ~/.asdf/asdf.sh
    
  2. 使用asdf安装Erlang和Elixir:

    # Install required dependencies for building Erlang
    apt-get update
    apt-get install -y build-essential autoconf m4 libncurses5-dev libwxgtk3.2-dev libwxgtk-webview3.2-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-17-jdk
    
    # Install asdf plugins
    asdf plugin add erlang
    asdf plugin add elixir
    
    # Install versions from .tool-versions file
    asdf install
    
  3. 安装Hex包管理器和钢筋:

    mix local.hex --force
    mix local.rebar --force
    
  4. 获取依赖关系:

    mix deps.get
    
  5. 编译项目:

    mix compile
    
  6. 运行测试:

    mix test
    

运行应用程序

本地运行

要在本地启动应用程序,请执行以下操作:

mix run --no-halt

使用Docker运行

该项目包括Docker配置,便于容器化部署:

  1. 构建并启动容器:

    docker-compose up
    
  2. 或者在分离模式下构建和运行:

    docker-compose up -d
    
  3. 要停止容器:

    docker-compose down
    

作为依赖使用

如果 可用十六进制,该软件包可以安装 通过添加 mcpex 到中的依赖项列表 mix.exs:

def deps do
  [
    {:mcpex, "~> 0.1.0"}
  ]
end

文档可以通过以下方式生成 ExDoc 并发表于 HexDocs。一旦发布,文档可以 在找到 https://hexdocs.pm/mcpex.

JSON处理

MCPEX使用Elixir的内置 JSON 模块(自Elixir 1.18起可用)用于所有JSON编码和解码操作。使用此项目时,请不要将Jason或其他JSON库添加为依赖项。

有关此项目中JSON使用的更多详细信息,请参阅 docs/json_usage.md.