open-index/open-npm huggingface dataset:
npm package: @frontmcp/adapters
Description: Adapters for the FrontMCP framework
Author: AgentFront
Latest version: 1.0.4

# @frontmcp/adapters

Adapters that extend FrontMCP servers by auto-generating MCP tools from external specifications.

[![NPM](https://img.shields.io/npm/v/@frontmcp/adapters.svg)](https://www.npmjs.com/package/@frontmcp/adapters)

## Install

```bash
npm install @frontmcp/adapters
```

## Available Adapters

### OpenAPI Adapter

Generate MCP tools from an OpenAPI spec. Each operation becomes a tool with Zod input validation and automatic request/response handling.

```ts
import { App } from '@frontmcp/sdk';
import { OpenapiAdapter } from '@frontmcp/adapters';

@App({
  id: 'my-app',
  name: 'My App',
  adapters: [
    OpenapiAdapter.init({
      name: 'backend:api',
      url: 'https://api.example.com/openapi.json',
      baseUrl: 'https://api.example.com',
    }),
  ],
})
export default class MyApp {}
```

Powered by [`mcp-from-openapi`](https://www.npmjs.com/package/mcp-from-openapi) for parameter conflict resolution, multi-security schemes, and request mappers.

> Full guide: [OpenAPI Adapter][docs-openapi]

## Docs

| Topic              | Link                               |
| ------------------ | ---------------------------------- |
| Adapters overview  | [Adapters Overview][docs-overview] |
| OpenAPI adapter    | [OpenAPI Adapter][docs-openapi]    |
| Step-by-step guide | [Add OpenAPI Adapter][docs-guide]  |

## Related Packages

- [`@frontmcp/sdk`](../sdk) — core framework
- [`@frontmcp/testing`](../testing) — E2E testing for adapter-generated tools
- [`mcp-from-openapi`](https://www.npmjs.com/package/mcp-from-openapi) — underlying OpenAPI-to-MCP engine

## License

Apache-2.0 — see [LICENSE](../../LICENSE).

<!-- links -->

[docs-overview]: https://docs.agentfront.dev/frontmcp/adapters/overview
[docs-openapi]: https://docs.agentfront.dev/frontmcp/adapters/openapi-adapter
[docs-guide]: https://docs.agentfront.dev/frontmcp/guides/add-openapi-adapter
npm package: @frontmcp/di
Description: Generic dependency injection container and registry utilities for TypeScript applications
Author: AgentFront
Latest version: 1.0.4

# @frontmcp/di

Dependency injection container and registry utilities for FrontMCP.

[![NPM](https://img.shields.io/npm/v/@frontmcp/di.svg)](https://www.npmjs.com/package/@frontmcp/di)

> **Internal package.** Used by `@frontmcp/sdk` — most users do not need to install this directly.

## Install

```bash
npm install @frontmcp/di reflect-metadata zod
```

## Features

- **Type-safe DI** — class tokens with configurable prefixes ([docs][docs-providers])
- **Scoped providers** — GLOBAL and CONTEXT scopes
- **Hierarchical registries** — parent/child container adoption
- **Indexed lookups** — O(1) registry queries via `IndexedRegistry`
- **Change events** — subscribe to registry mutations
- **Token factory** — `createTokenFactory({ prefix })` for Symbol-based tokens

## Quick Example

```ts
import 'reflect-metadata';
import { DiContainer, createTokenFactory, ProviderScope } from '@frontmcp/di';

const tokens = createTokenFactory({ prefix: 'MyApp' });

class DatabaseService {
  static metadata = { name: 'Database', scope: ProviderScope.GLOBAL };
}

const container = new DiContainer([DatabaseService]);
await container.ready;
const db = container.get(DatabaseService);
```

## Docs

| Topic          | Link                        |
| -------------- | --------------------------- |
| Providers & DI | [Providers][docs-providers] |

## Related Packages

- [`@frontmcp/sdk`](../sdk) — consumes DI for server-level injection

## License

Apache-2.0 — see [LICENSE](../../LICENSE).

<!-- links -->

[docs-providers]: https://docs.agentfront.dev/frontmcp/extensibility/providers
npm package: @frontmcp/plugin-cache
Description: Cache plugin for FrontMCP - Redis, Vercel KV, and in-memory caching with automatic tool result caching
Author: AgentFront
Latest version: 1.0.4

# @frontmcp/plugin-cache

Cache plugin for FrontMCP - provides automatic tool result caching with support for Redis, Vercel KV, and in-memory storage.

## Installation

```bash
npm install @frontmcp/plugin-cache
```

## Usage

```typescript
import { CachePlugin } from '@frontmcp/plugin-cache';
import { App } from '@frontmcp/sdk';

@App({
  plugins: [CachePlugin],
})
class MyApp {}
```

## Features

- **Multiple storage backends**: Redis, Vercel KV, or in-memory
- **Automatic TTL management**: Configure cache expiration
- **Tool result caching**: Automatically cache tool execution results
- **Configurable cache keys**: Customize how cache keys are generated

## Configuration

### In-Memory (Default)

```typescript
import { CachePlugin } from '@frontmcp/plugin-cache';

@App({
  plugins: [
    CachePlugin.init({
      type: 'memory',
      defaultTTL: 300, // TTL in seconds (default: 1 day)
    }),
  ],
})
class MyApp {}
```

### Redis

```typescript
import { CachePlugin } from '@frontmcp/plugin-cache';

@App({
  plugins: [
    CachePlugin.init({
      type: 'redis',
      defaultTTL: 300,
      config: {
        host: 'localhost',
        port: 6379,
        password: process.env.REDIS_PASSWORD, // optional
        db: 0, // optional
      },
    }),
  ],
})
class MyApp {}
```

### Redis Client (Reuse Existing)

```typescript
import { CachePlugin } from '@frontmcp/plugin-cache';
import { Redis } from 'ioredis';

const redis = new Redis({ host: 'localhost', port: 6379 });

@App({
  plugins: [
    CachePlugin.init({
      type: 'redis-client',
      client: redis,
      defaultTTL: 300,
    }),
  ],
})
class MyApp {}
```

### Global Store

Use the store configuration from `@FrontMcp` decorator:

```typescript
import { CachePlugin } from '@frontmcp/plugin-cache';

@App({
  plugins: [
    CachePlugin.init({
      type: 'global-store', // Uses redis/vercel-kv from FrontMcp config
    }),
  ],
})
class MyApp {}
```

## License

Apache-2.0
npm package: @frontmcp/plugin-codecall
Description: CodeCall plugin for FrontMCP - AgentScript-based meta-tools for orchestrating MCP tools
Author: AgentFront
Latest version: 1.0.4

# @frontmcp/plugin-codecall

CodeCall plugin for FrontMCP - provides AgentScript-based meta-tools for orchestrating MCP tools.

## Installation

```bash
npm install @frontmcp/plugin-codecall @frontmcp/plugin-cache
```

> Note: `@frontmcp/plugin-cache` is a peer dependency and must be installed.

## Usage

```typescript
import { CodeCallPlugin } from '@frontmcp/plugin-codecall';
import { CachePlugin } from '@frontmcp/plugin-cache';
import { FrontMcp } from '@frontmcp/sdk';

const app = new FrontMcp({
  plugins: [CachePlugin, CodeCallPlugin],
});
```

## Features

- **Meta-Tools**: Search, describe, execute, and invoke tools programmatically
- **AgentScript Execution**: Run JavaScript code in a sandboxed VM
- **Tool Discovery**: Semantic search across available tools
- **Configurable Modes**: Control tool visibility and execution patterns

## Meta-Tools

- `codecall:search` - Search for tools by name or description
- `codecall:describe` - Get detailed tool descriptions
- `codecall:execute` - Execute AgentScript code
- `codecall:invoke` - Invoke a specific tool directly

## Configuration

```typescript
import { CodeCallPlugin } from '@frontmcp/plugin-codecall';

const app = new FrontMcp({
  plugins: [
    CodeCallPlugin.configure({
      mode: 'codecall_only', // 'codecall_only' | 'codecall_opt_in' | 'metadata_driven'
      embedding: {
        enabled: true,
        model: 'default',
      },
    }),
  ],
});
```

## Modes

- **codecall_only**: Hide all tools except CodeCall meta-tools
- **codecall_opt_in**: Show all tools, opt-in to CodeCall execution
- **metadata_driven**: Use per-tool metadata for visibility

## License

Apache-2.0
npm package: @frontmcp/plugin-dashboard
Description: Dashboard plugin for FrontMCP - visual monitoring and introspection of MCP servers
Author: AgentFront
Latest version: 1.0.4

# @frontmcp/plugin-dashboard

Dashboard plugin for FrontMCP - provides visual monitoring and introspection of MCP servers.

## Installation

```bash
npm install @frontmcp/plugin-dashboard
```

## Usage

```typescript
import { DashboardPlugin } from '@frontmcp/plugin-dashboard';
import { FrontMcp } from '@frontmcp/sdk';

const app = new FrontMcp({
  plugins: [DashboardPlugin],
});
```

## Features

- **Visual Dashboard**: Web-based UI for monitoring MCP servers
- **Graph Visualization**: View tools, resources, and their relationships
- **Introspection Tools**: Built-in tools to list and describe server capabilities
- **Real-time Updates**: Monitor server state in real-time

## Configuration

```typescript
import { DashboardPlugin } from '@frontmcp/plugin-dashboard';

const app = new FrontMcp({
  plugins: [
    DashboardPlugin.configure({
      basePath: '/dashboard',
      enableTools: true,
    }),
  ],
});
```

## License

Apache-2.0
npm package: @frontmcp/plugin-remember
Description: Remember plugin for FrontMCP - encrypted session memory with approval system for secure tool authorization
Author: AgentFront
Latest version: 1.0.4

# @frontmcp/plugin-remember

Remember plugin for FrontMCP - provides encrypted session memory with an approval system for secure tool authorization.

## Installation

```bash
npm install @frontmcp/plugin-remember
```

## Usage

```typescript
import { RememberPlugin } from '@frontmcp/plugin-remember';
import { FrontMcp } from '@frontmcp/sdk';

const app = new FrontMcp({
  plugins: [RememberPlugin],
});
```

## Features

- **Encrypted Memory**: Store and retrieve values with AES-256-GCM encryption
- **Scoped Storage**: Session, user, tool, and global scopes
- **Approval System**: Tool approval workflow with configurable requirements
- **TTL Support**: Automatic expiration of stored values
- **Multiple Backends**: Redis, Vercel KV, or in-memory storage

## Usage in Tools

```typescript
@Tool({ name: 'my_tool' })
class MyTool extends ToolContext {
  async execute(input) {
    // Store a value
    await this.remember.set('theme', 'dark');

    // Retrieve a value
    const theme = await this.remember.get('theme', { defaultValue: 'light' });

    // Store with TTL (expires in 5 minutes)
    await this.remember.set('token', 'xyz', { ttl: 300 });

    // Check if remembered
    if (await this.remember.knows('onboarded')) {
      // Skip onboarding
    }
  }
}
```

## Configuration

```typescript
import { RememberPlugin } from '@frontmcp/plugin-remember';

const app = new FrontMcp({
  plugins: [
    RememberPlugin.configure({
      store: 'redis',
      encryption: { enabled: true },
      approval: { enabled: true },
    }),
  ],
});
```

## License

Apache-2.0
npm package: @frontmcp/utils
Description: Shared utility functions for FrontMCP - string manipulation, URI handling, path utilities, and more
Author: AgentFront
Latest version: 1.0.4

# @frontmcp/utils

Shared utility functions for the FrontMCP ecosystem.

[![NPM](https://img.shields.io/npm/v/@frontmcp/utils.svg)](https://www.npmjs.com/package/@frontmcp/utils)

> **Internal package.** Used by `@frontmcp/sdk` and other `@frontmcp/*` libraries — most users do not need to install this directly.

## Install

```bash
npm install @frontmcp/utils
```

## Features

**Naming** — `splitWords`, `toCase`, `shortHash`, `ensureMaxLen`, `idFromString` for string manipulation and case conversion

**URI** — `isValidMcpUri`, `extractUriScheme`, `parseUriTemplate`, `matchUriTemplate`, `expandUriTemplate` (RFC 3986 / RFC 6570)

**Path** — `trimSlashes`, `joinPath` for URL path operations

**Content** — `sanitizeToJson`, `inferMimeType` for safe serialization and MIME detection

**HTTP** — `validateBaseUrl` for URL validation and normalization

**Crypto** — `sha256`, `sha256Hex`, `sha256Base64url`, `hkdfSha256`, `encryptAesGcm`, `decryptAesGcm`, `randomBytes`, `randomUUID`, `generateCodeVerifier`, `generateCodeChallenge`, `generatePkcePair`, `base64urlEncode`, `base64urlDecode` for cross-platform cryptography

**File system** — `readFile`, `writeFile`, `mkdir`, `stat`, `fileExists`, `readJSON`, `writeJSON`, `ensureDir`, `isDirEmpty`, `runCmd` and more — lazy-loaded for Node.js environments

## Quick Example

```ts
import { matchUriTemplate, sha256Hex, fileExists } from '@frontmcp/utils';

const params = matchUriTemplate('users/{id}/posts/{postId}', 'users/123/posts/456');
// { id: '123', postId: '456' }

const hash = sha256Hex('hello world');

const exists = await fileExists('/path/to/file');
```

## Related Packages

- [`@frontmcp/sdk`](../sdk) — core framework
- [`@frontmcp/auth`](../auth) — uses crypto utilities for PKCE, encryption

## License

Apache-2.0 — see [LICENSE](../../LICENSE).