NAME
MCP::Server::KnowledgeStore::Tools - Discovers and assembles the installed MCP::Server::KnowledgeStore::Tools::* plugins
VERSION
version 0.001
SYNOPSIS
use MCP::Server::KnowledgeStore::Store;
use MCP::Server::KnowledgeStore::Tools;
my $store = MCP::Server::KnowledgeStore::Store->new(pg => $dsn);
my $server = MCP::Server::KnowledgeStore::Tools->build($store);
$server->to_stdio;
DESCRIPTION
Assembles an MCP::Server (specifically MCP::Server::KnowledgeStore::ResourceTemplates, which extends MCP::Server with resource template support) from whichever MCP::Server::KnowledgeStore::Tools::* plugin distributions happen to be installed - ::Memory, ::Skill, ::Spec, ::Agent and so on each live in their own repository and release independently of this one and of each other. This module itself only registers the one cross-cutting tool, list_projects, that no single plugin owns.
Resource templates provide addressable reads via URIs as an alternative to get_* tools. For example, memory://memories/my-memory or memory://memories/my-memory/revisions/1.
A plugin is any package under the MCP::Server::KnowledgeStore::Tools:: namespace implementing:
sub register ($class, $server, $store) { ... }
which adds its own tools to $server via $server->tool(...) and resource templates via $server->add_template(...), using $store (a MCP::Server::KnowledgeStore::Store) for persistence. MCP::Server::KnowledgeStore::Tools::Support provides the schema fragments and helpers most plugins need, and MCP::Server::KnowledgeStore::Tools::Revisioned provides the whole tool set for a revisioned/taggable resource in one call - both are excluded from discovery, since neither is a plugin itself.
METHODS
build
my $server = MCP::Server::KnowledgeStore::Tools->build($store);
Returns an MCP::Server with list_projects plus everything every installed plugin registers.
plugins
my @plugin_classes = MCP::Server::KnowledgeStore::Tools->plugins;
The installed, loaded plugin classes, discovered via Module::Pluggable::Object.
AUTHOR
Wesley Schwengle <waterkip@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2026 by Wesley Schwengle.
This is free software, licensed under:
The (three-clause) BSD License