Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Perl SDK

FreeNot checked

An SDK for building MCP servers and clients with the Perl programming language.

GitHubEmbed

About

An SDK for building MCP servers and clients with the Perl programming language.

README

Model Context Protocol support for Perl and the Mojolicious real-time web framework.

Features

Please be aware that this module is still in development and will be changing rapidly. Additionally the MCP specification is getting regular updates which we will implement. Breaking changes are very likely.

  • Tool calling, prompts and resources
  • Streamable HTTP and Stdio transports
  • Notifications for list changes (tools, prompts, resources)
  • Progress tracking for long-running operations
  • OAuth scopes for tools, prompts and resources
  • Scalable with pre-forking web server and async tools using promises
  • HTTP client for testing
  • Can be embedded in Mojolicious web apps

Installation

All you need is Perl 5.20 or newer. Just install from CPAN.

$ cpanm -n MCP

We recommend the use of a Perlbrew environment.

Streamable HTTP Transport

Use the to_action method to add an MCP endpoint to any Mojolicious application.

use Mojolicious::Lite -signatures;

use MCP::Server;

my $server = MCP::Server->new;
$server->tool(
  name         => 'echo',
  description  => 'Echo the input text',
  input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']},
  code         => sub ($tool, $args) {
    return "Echo: $args->{msg}";
  }
);

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

app->start;

Authentication can be added by the web application, just like for any other route. OAuth scopes can be enforced per tool, prompt and resource.

Server-to-Client Streaming

The HTTP transport can optionally accept GET requests to open a long-lived SSE stream the server can push notifications to, and DELETE requests to terminate a session. This requires per-process state and is not compatible with pre-forking web servers, so it is opt-in.

use Mojolicious::Lite -signatures;

use MCP::Server;

my $server = MCP::Server->new;
$server->tool(
  name         => 'echo',
  description  => 'Echo the input text',
  input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']},
  code         => sub ($tool, $args) {
    $tool->context->notify('notifications/message', {level => 'info', data => "Echoing: $args->{msg}"});
    return "Echo: $args->{msg}";
  }
);

any '/mcp' => $server->to_action({streaming => 1});

app->start;

Stdio Transport

Build local command line applications and use the stdio transport for testing with the to_stdio method.

use Mojo::Base -strict, -signatures;

use MCP::Server;

my $server = MCP::Server->new;
$server->tool(
  name         => 'echo',
  description  => 'Echo the input text',
  input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']},
  code         => sub ($tool, $args) {
    return "Echo: $args->{msg}";
  }
);

$server->to_stdio;

Just run the script and type requests on the command line.

$ 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"}}}

from github.com/mojolicious/mojo-mcp

Installing Perl SDK

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/mojolicious/mojo-mcp

FAQ

Is Perl SDK MCP free?

Yes, Perl SDK MCP is free — one-click install via Unyly at no cost.

Does Perl SDK need an API key?

No, Perl SDK runs without API keys or environment variables.

Is Perl SDK hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Perl SDK in Claude Desktop, Claude Code or Cursor?

Open Perl SDK on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Perl SDK with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs