NAME

Langertha::Raider::MCP::View - Internal filtered view of a configured MCP server, for a subagent

VERSION

version 0.504

SYNOPSIS

# Internal to Langertha-Raider -- no API promise.
my $view = Langertha::Raider::MCP::View->new(
  server => $mcp->client('github'),
  allows => sub { $_[0] eq 'mcp__github__get_issue' },
);
my $tools = await $view->list_tools;    # only get_issue

DESCRIPTION

Internal module. Its interface may change without notice.

A configured MCP server as a subagent sees it (ADR 0029 §11): the same connection (no second process), only the tools "allows" lets through. It answers initialize, list_tools and call_tool like Langertha::Raider::MCP::Server; a call of a tool it hides fails. A view that hides every tool still takes its place in the engine's mcp_servers, so the engine:N of the servers after it are those of the caller.

server

The Langertha::Raider::MCP::Server. Required.

allows

sub { my ( $tool_name ) = @_; ... }: true for a tool (by the name the model sees) the view lets through. Required.

initialize

list_tools

call_tool

As Langertha::Raider::MCP::Server, filtered.

loop

undef: a view is no IO::Async::Notifier, so code that takes its MCP clients out of the loop when a subagent is done leaves it (and the caller's connection) alone.

SEE ALSO

SUPPORT

Issues

Please report bugs and feature requests at https://github.com/Getty/langertha-raider/issues.

IRC

Join #langertha on irc.perl.org or message Getty directly.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

https://raudssus.de/