Agent skill

frontmcp-extensibility

Extend FrontMCP servers with external npm packages and libraries. Covers VectoriaDB for semantic search, and patterns for integrating third-party services into providers and tools. Use when adding search, ML, database, or external API capabilities beyond the core SDK.

Stars 142
Forks 7

Install this agent skill to your Project

npx add-skill https://github.com/agentfront/frontmcp/tree/main/libs/skills/catalog/frontmcp-extensibility

Metadata

Additional technical details for this skill

SKILL.md

FrontMCP Extensibility

Patterns and examples for extending FrontMCP servers with external npm packages. The core SDK handles MCP protocol, DI, and lifecycle — this skill shows how to integrate third-party libraries as providers and tools.

When to Use This Skill

Must Use

  • Adding semantic search or similarity matching to your server (VectoriaDB)
  • Integrating an external npm package as a FrontMCP provider
  • Building tools that wrap third-party services (databases, APIs, ML models)

Recommended

  • Looking for patterns to structure external service integrations
  • Deciding between provider-based vs direct integration for a library
  • Adding capabilities like applescript automation, VM execution, or data processing

Skip When

  • You need to build core MCP components (see frontmcp-development)
  • You need to configure auth, transport, or CORS (see frontmcp-config)
  • You need to write a plugin with hooks and context extensions (see create-plugin)

Decision: Use this skill when integrating external libraries into your FrontMCP server as providers or tools.

Scenario Routing Table

Scenario Reference Description
Add in-memory semantic search with VectoriaDB references/vectoriadb.md TF-IDF indexing, field weighting, provider+tool pattern
Load an app from an npm package multi-app-composition (in frontmcp-setup) App.esm('@scope/pkg@^1.0.0', 'AppName') pattern
Connect to a remote MCP server multi-app-composition (in frontmcp-setup) App.remote('https://...', 'ns') pattern
Build a reusable plugin with hooks create-plugin-hooks (in frontmcp-development) DynamicPlugin, context extensions, lifecycle hooks
Build a custom adapter for an external source create-adapter (in frontmcp-development) DynamicAdapter for OpenAPI, GraphQL, or custom sources
Auto-generate tools from an OpenAPI spec official-adapters (in frontmcp-development) OpenapiAdapter with filtering, auth, and transforms

Integration Pattern

The standard pattern for integrating any external library:

  1. Create a provider — wraps the library as a singleton or scoped service
  2. Register the provider — add to @App({ providers: [...] }) or @FrontMcp({ providers: [...] })
  3. Create tools — expose the provider's capabilities as MCP tools via this.get(TOKEN)
  4. Optionally create resources — expose data as MCP resources with autocompletion
typescript
// 1. Provider wraps the library
@Provider({ name: 'my-search', provide: SearchToken, scope: ProviderScope.GLOBAL })
export class SearchProvider {
  private client: ExternalLibrary;
  constructor() {
    this.client = new ExternalLibrary({
      /* config */
    });
  }
  async search(query: string) {
    return this.client.query(query);
  }
}

// 2. Tool exposes it
@Tool({ name: 'search', inputSchema: { query: z.string() } })
export default class SearchTool extends ToolContext {
  async execute(input: { query: string }) {
    return this.get(SearchToken).search(input.query);
  }
}

Available Integrations

Library Purpose Reference
VectoriaDB In-memory TF-IDF semantic search references/vectoriadb.md

More integrations can be added as references (e.g., enclave-vm, applescript, database clients).

Verification Checklist

  • External library is in dependencies (not devDependencies)
  • Provider wraps the library with proper initialization and cleanup
  • Provider is registered in @App or @FrontMcp with a typed DI token
  • Tools use this.get(TOKEN) to access the provider (not direct imports)
  • Error handling wraps library-specific errors into MCP error classes

Reference

  • Related skills: create-provider, create-tool, frontmcp-development

Expand your agent's capabilities with these related and highly-rated skills.

agentfront/frontmcp

docs-skill

A fixture skill with references and examples for E2E testing.

142 7
Explore
agentfront/frontmcp

fix-pr

Review a CodeRabbit PR comment and produce an action plan when prompted to analyze a review comment.

142 7
Explore
agentfront/frontmcp

frontmcp-observability

Use when you want to add tracing, structured logging, or monitoring to your FrontMCP server. Covers OpenTelemetry instrumentation, vendor integrations (Coralogix, Datadog, Logz.io, Grafana), this.telemetry API for custom spans, structured JSON logging with sinks, and testing observability. Triggers: observability, telemetry, tracing, logging, monitoring, opentelemetry, otel, spans, datadog, coralogix, logz, grafana, winston, pino.

142 7
Explore
agentfront/frontmcp

frontmcp-development

Use when you want to create a tool, add a resource, build a prompt, write a provider, implement an adapter, add OpenAPI integration, create a plugin, agent, job, or workflow. The skill for BUILDING any FrontMCP component.

142 7
Explore
agentfront/frontmcp

frontmcp-authorities

Use when implementing authorization, access control, RBAC, ABAC, or ReBAC for tools, resources, or prompts. Covers JWT claims mapping, authority profiles, and policy enforcement.

142 7
Explore
agentfront/frontmcp

frontmcp-setup

Domain router for project setup, scaffolding, and organization. Use this skill whenever someone asks to create a new FrontMCP project, set up an Nx monorepo, configure Redis or SQLite storage, organize project structure, compose multiple apps into one server, or manage the skills system. Also triggers for questions like 'how do I start', 'project layout', 'folder structure', 'add redis', 'set up database', or 'create a new app'.

142 7
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results