返回市场
魔乔-MCP

魔乔-MCP

作者:mojolicious11 星标更新:2025-11-14

项目介绍

【技术文档摘要】

MCP Perl SDK

Perl 和实时网络框架 Mojolicious 提供 Model Context Protocol 支持。

特性

请注意,此模块仍在开发中,并且会快速变化。此外,MCP 规范会定期更新,我们将会实现这些更新。重大变更的可能性很大。

  • 工具调用和提示
  • 可流式传输的HTTP和Stdio传输
  • 使用预分叉Web服务器和异步工具(使用承诺)进行扩展
  • 测试用的HTTP客户端
  • 可嵌入到Mojolicious Web应用程序中

安装

您需要的是Perl 5.20或更高版本。只需从CPAN安装即可。

$ cpanm -n MCP

我们建议使用Perlbrew环境。

可流式传输的HTTP传输

使用 to_action 方法将MCP端点添加到任何Mojolicious应用程序中。

use Mojolicious::Lite -signatures;

use MCP::Server;

my $server = MCP::Server->new;
$server->tool(
  name         => 'echo',
  description  => '回显输入文本',
  input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']},
  code         => sub ($tool, $args) {
    return "回显: $args->{msg}";
  }
);

any '/mcp' => $server->to_action;

app->start;

可以通过Web应用程序添加认证,就像对其他路由一样。

Stdio传输

构建本地命令行应用程序,并使用 to_stdio 方法通过stdio传输进行测试。

use Mojo::Base -strict, -signatures;

use MCP::Server;

my $server = MCP::Server->new;
$server->tool(
  name         => 'echo',
  description  => '回显输入文本',
  input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']},
  code         => sub ($tool, $args) {
    return "回显: $args->{msg}";
  }
);

$server->to_stdio;

只需运行脚本并在命令行上键入请求。

$ perl examples/echo_stdio.pl
{"jsonrpc":"2.0","id":"1","method":"tools/list"}
{"jsonrpc":"2.0","id":"2","method":"tools/call","params":{"name":"echo","arguments":{"msg":"hello perl"}}}