Lab Registry Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REGISTRY_PATH | No | Absolute path to local clone of the gen-e2-marketplace repository. Required for local/offline mode. | |
| REGISTRY_GITHUB_REPO | No | GitHub repository path in owner/repo format for the marketplace (e.g., GLOBAL-PALO-IT/gen-e2-marketplace). Required for GitHub mode. | |
| REGISTRY_GITHUB_TOKEN | No | Optional GitHub personal access token for private repos or higher rate limits. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_entriesA | List all registry entries. Filter by:
|
| search_entriesA | Search registry entries by exact keyword or partial name match. Searches name, description, and plugin name. Name matches are ranked before description matches. Optionally restrict results to a specific type. Use this when you have a specific keyword or partial name (e.g. "tdd", "android", "architecture"). For natural language task descriptions, use suggest_entries instead. |
| get_entryA | Get a specific registry entry with its full content. Use this to read a single artefact's documentation or to get its install files. To get all artefacts of a plugin at once, use get_plugin_install_package instead. Returns:
|
| get_pluginC | Get all registry entries for a plugin, plus its manifest. Returns:
|
| check_complianceA | Check whether locally installed gen-e2 plugin artefacts are up to date with the registry. Use this whenever the user asks to verify, check, or audit their installed gen-e2 plugins. Workflow: discover local plugin.json files (e.g. .claude/plugins/*/plugin.json), read the version field from each, then call this tool — do NOT compare versions manually. Each item in entries must have:
Returns:
|
| check_compliance_pluginA | Check all artefacts of a gen-e2 plugin against a single local version. Use this when you have a plugin.json with one version field and want to verify the whole plugin in one call, instead of listing artefacts manually and calling check_compliance with each one. Typical workflow:
Returns the same shape as check_compliance:
|
| reload_registryA | Force reload the registry from its source (GitHub or local path). Clears the in-memory cache and re-fetches all entries. Use after a marketplace update (git pull / new commit) to get fresh data without restarting the server. Returns a diff vs the previous state:
|
| list_pluginsA | List all plugins with version, description, and entry counts per type. Returns one entry per plugin sorted alphabetically, with:
|
| get_entry_by_idA | Get a registry entry by its full ID (plugin/type/name). Shortcut for get_entry when you already have the entry ID from list_entries. Returns same shape as get_entry: {entry, metadata, content_raw}. Example: id="android/skill/android-architecture" |
| get_changelogA | Get the full CHANGELOG.md content for a plugin. Useful after check_compliance signals an outdated entry — shows what changed between versions without leaving the MCP context. Returns:
|
| get_marketplace_statsB | Get a dashboard overview of the entire registry. Returns:
|
| suggest_entriesA | Suggest registry entries relevant to a natural language task description. Splits the task into individual terms and scores entries by how many terms appear in their name, description, plugin name, and tags. Returns entries ranked by relevance score with matched_terms listed. Use this for natural language queries (e.g. "I need to review architecture and create ADRs", "write tests for a Go service"). For exact keyword or partial name matching, use search_entries instead.
|
| suggest_pluginsA | Suggest gen-e2 plugins relevant to a natural language task or project description. Use this for plugin-level discovery when the user describes their project or use case and wants to know which plugins are most relevant — before drilling into individual artefacts with suggest_entries. Scores plugins by how many task words appear in their name (3x weight), description, and tags. Returns plugins sorted by relevance score. Examples:
|
| validate_entryA | Validate a skill/agent/command markdown file against the marketplace schema. Checks required fields, recommended fields, body content, and naming conventions.
Returns:
|
| get_plugin_install_packageA | Get full documentation AND install-ready files for an entire plugin in one call. Use this whenever the user wants to:
Returns all artefacts with:
Prefer this over multiple get_entry calls when working with a full plugin. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Palo-IT-GitHub-Demos/lab-registry-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server