open-index/open-npm huggingface dataset:
npm package: @mcp-collection/mssql-mcp
Description: Model Context Protocol (MCP) for Microsoft SQL Server (MSSQL)
Latest version: 0.0.4

# mssql-mcp

This is a Model Context Protocol (MCP) server for Microsoft SQL Server. 
It allows you to generate SQL table creation scripts using the MCP protocol.

## Configuration

The server requires the following environment variables for database connection:

- `HOST` - SQL Server hostname
- `PORT` - SQL Server port
- `USER` - SQL Server username
- `PASSWORD` - SQL Server password
- `DATABASE` - Database name

## Usage

Configure the MCP server in your MCP client configuration:

```json
{
  "mcpServers": {
    "mssqlMcp": {
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@mcp-collection/mssql-mcp@latest"],
      "env": {
        "HOST": "your-sql-server",
        "PORT": "your-port-number",
        "USER": "your-username",
        "PASSWORD": "your-password",
        "DATABASE": "your-database"
      }
    }
  }
}
```

On Windows, you may need to set up in a different way.

Install the package globally:

```bash
npm i -g @mcp-collection/mssql-mcp@latest
```

Then, configure the MCP server in your MCP client configuration:

```json
{
  "mcpServers": {
    "mssqlMcp": {
      "transport": "stdio",
      "command": "node",
      "args": ["C:\\Users\\YourUserName\\AppData\\Roaming\\npm\\node_modules\\@mcp-collection\\mssql-mcp\\build\\index.js"],
      "env": {
        "HOST": "your-sql-server",
        "PORT": "your-port-number",
        "USER": "your-username",
        "PASSWORD": "your-password",
        "DATABASE": "your-database"
      }
    }
  }
}
```

## Available Tools

### get-create-table-sql-script

Generates a SQL script for creating a table based on an existing table in your database.

Parameters:
- `dbSchemaName` - The name of the database schema
- `dbTableName` - The name of the database table

### execute-readonly-sql

Executes readonly SQL script.

Parameters:
- `sql` - The readonly SQL script to execute

## Development

Copy the `config-example.json` file to `config.json` and fill in the required values.
npm package: @mcp-contracts/core
Description: Snapshot, diff, and classify MCP tool schema changes
Latest version: 0.5.0

# @mcp-contracts/core

Snapshot, diff, and classify MCP tool schema changes. This is the core library behind [`mcpdiff`](https://www.npmjs.com/package/@mcp-contracts/cli).

## Install

```bash
npm install @mcp-contracts/core
```

## Usage

```typescript
import {
  createSnapshot,
  diffSnapshots,
  formatTerminal,
} from "@mcp-contracts/core";

// Create a snapshot from raw MCP server data
const snapshot = createSnapshot({
  serverName: "my-server",
  serverVersion: "1.0.0",
  tools: rawTools,
  resources: rawResources,
  prompts: rawPrompts,
});

// Diff two snapshots
const report = diffSnapshots(before, after);

// Format for display
console.log(formatTerminal(report));
```

### API

- **`createSnapshot(params)`** — Build a versioned `.mcpc.json` snapshot from raw MCP data
- **`diffSnapshots(before, after, options?)`** — Compare two snapshots and classify every change by severity
- **`computeContentHash(snapshot)`** — Generate a deterministic content hash for a snapshot
- **`formatTerminal(report)`** / **`formatMarkdown(report)`** / **`formatJson(report)`** — Format a diff report for output
- **`createWatchConfig(options?)`** — Create a validated watch configuration with defaults
- **`createWebhookPayload(report, source)`** — Build a structured webhook payload from a diff report

### Watch Types

```typescript
import {
  createWatchConfig,
  DEFAULT_WATCH_IGNORE_PATTERNS,
  type WatchConfig,
  type WatchDiffEvent,
  type CreateWatchConfigOptions,
} from "@mcp-contracts/core";

// Create config with defaults
const config = createWatchConfig({
  debounceMs: 1000,
  watchPaths: ["src"],
});

// config.ignorePatterns defaults to DEFAULT_WATCH_IGNORE_PATTERNS:
// ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/*.mcpc.json"]
```

### Webhook Types

```typescript
import {
  createWebhookPayload,
  type WebhookPayload,
  type WebhookSource,
  type WebhookTrigger,
} from "@mcp-contracts/core";

const payload = createWebhookPayload(report, {
  trigger: "ci",
  baselinePath: "contracts/baseline.mcpc.json",
  serverSource: "node server.js",
});
// → { event: "diff.completed", timestamp, source, report }
```

### Change Classification

Every detected change is classified as one of:

| Severity | Meaning | Examples |
|----------|---------|---------|
| **breaking** | Will break existing consumers | Required param added, tool removed |
| **warning** | Needs human review | Description changed (potential tool poisoning) |
| **safe** | Non-breaking | New tool added, optional param added |

See the [full specification](https://github.com/mcp-contracts/mcp-contracts/blob/main/SPEC.md) for classification rules.

---
*mcp-contracts is an open-source project (MIT license). It's community tooling for the MCP ecosystem, not affiliated with Anthropic or the MCP project. Contributions and feedback are welcome.*

## License

MIT
npm package: @mcp-decorator/plugin-filesystem
Description: Filesystem operations plugin for MCP Decorator Framework
Author: fromsko
Latest version: 0.1.3

# @mcp-decorator/plugin-filesystem

Filesystem operations plugin for MCP Decorator Framework with security restrictions.

## Installation

```bash
npm install @mcp-decorator/plugin-filesystem
# or
pnpm add @mcp-decorator/plugin-filesystem
# or
bun add @mcp-decorator/plugin-filesystem
```

## Usage

```typescript
import { createStdioServer } from "@mcp-decorator/core";
import { FilesystemPlugin } from "@mcp-decorator/plugin-filesystem";

createStdioServer({
  name: "my-server",
  plugins: [
    new FilesystemPlugin({
      basePath: "/path/to/allowed/directory",
    }),
  ],
});
```

## Configuration

### FilesystemOptions

- `basePath` (string, required): Base directory for all file operations. All paths are restricted to this directory and its subdirectories.
- `allowedExtensions` (string[], optional): List of allowed file extensions (not yet implemented).

## Security

⚠️ **Important**: The `basePath` option is a security feature that restricts all file operations to the specified directory. Attempts to access files outside this directory will be rejected with an error.

**Example:**

```typescript
new FilesystemPlugin({ basePath: "/home/user/documents" });
```

With this configuration:

- ✅ `/home/user/documents/file.txt` - Allowed
- ✅ `/home/user/documents/subfolder/file.txt` - Allowed
- ❌ `/home/user/other/file.txt` - Rejected
- ❌ `../../../etc/passwd` - Rejected

## Available Commands

### fs.read

Read file content.

**Parameters:**

- `path` (string): File path relative to base path

**Example:**

```json
{
  "type": "fs.read",
  "params": { "path": "example.txt" }
}
```

**Response:**

```
(file content)
```

### fs.write

Write file content.

**Parameters:**

- `path` (string): File path relative to base path
- `content` (string): Content to write

**Example:**

```json
{
  "type": "fs.write",
  "params": {
    "path": "output.txt",
    "content": "Hello, World!"
  }
}
```

**Response:**

```
Successfully wrote to output.txt
```

### fs.list

List directory contents.

**Parameters:**

- `path` (string): Directory path relative to base path

**Example:**

```json
{
  "type": "fs.list",
  "params": { "path": "." }
}
```

**Response:**

```
[DIR] subfolder
[FILE] file1.txt
[FILE] file2.txt
```

### fs.delete

Delete a file.

**Parameters:**

- `path` (string): File path relative to base path

**Example:**

```json
{
  "type": "fs.delete",
  "params": { "path": "temp.txt" }
}
```

**Response:**

```
Successfully deleted temp.txt
```

## Error Handling

All commands return descriptive error messages:

- **Security violations**: "Security violation: Path is outside the allowed base path"
- **File not found**: "Error reading file: ENOENT: no such file or directory"
- **Permission denied**: "Error writing file: EACCES: permission denied"

## License

MIT
npm package: @mcp-decorator/plugin-http
Description: HTTP operations plugin for MCP Decorator Framework
Author: fromsko
Latest version: 0.1.3

# @mcp-decorator/plugin-http

HTTP request operations plugin for MCP Decorator Framework.

## Installation

```bash
npm install @mcp-decorator/plugin-http
# or
pnpm add @mcp-decorator/plugin-http
# or
bun add @mcp-decorator/plugin-http
```

## Usage

```typescript
import { createStdioServer } from "@mcp-decorator/core";
import { HttpPlugin } from "@mcp-decorator/plugin-http";

createStdioServer({
  name: "my-server",
  plugins: [
    new HttpPlugin({
      timeout: 30000,
      headers: {
        "User-Agent": "MCP-Server/1.0",
      },
    }),
  ],
});
```

## Configuration

### HttpOptions

- `timeout` (number, optional): Request timeout in milliseconds. Default: 30000 (30 seconds)
- `headers` (Record<string, string>, optional): Default headers to include in all requests

## Available Commands

### http.get

Make a GET request.

**Parameters:**

- `url` (string): URL to request
- `headers` (object, optional): Request headers

**Example:**

```json
{
  "type": "http.get",
  "params": {
    "url": "https://api.example.com/data",
    "headers": {
      "Authorization": "Bearer token123"
    }
  }
}
```

**Response:**

```
Status: 200

Headers:
content-type: application/json
content-length: 1234

Body:
{"data": "..."}
```

### http.post

Make a POST request.

**Parameters:**

- `url` (string): URL to request
- `body` (string, optional): Request body
- `headers` (object, optional): Request headers

**Example:**

```json
{
  "type": "http.post",
  "params": {
    "url": "https://api.example.com/users",
    "body": "{\"name\": \"John\"}",
    "headers": {
      "Content-Type": "application/json"
    }
  }
}
```

**Response:**

```
Status: 201

Headers:
content-type: application/json

Body:
{"id": 123, "name": "John"}
```

### http.put

Make a PUT request.

**Parameters:**

- `url` (string): URL to request
- `body` (string, optional): Request body
- `headers` (object, optional): Request headers

**Example:**

```json
{
  "type": "http.put",
  "params": {
    "url": "https://api.example.com/users/123",
    "body": "{\"name\": \"Jane\"}",
    "headers": {
      "Content-Type": "application/json"
    }
  }
}
```

### http.delete

Make a DELETE request.

**Parameters:**

- `url` (string): URL to request
- `headers` (object, optional): Request headers

**Example:**

```json
{
  "type": "http.delete",
  "params": {
    "url": "https://api.example.com/users/123"
  }
}
```

## Timeout Handling

Requests that exceed the configured timeout will be aborted:

```json
{
  "type": "http.get",
  "params": { "url": "https://slow-api.example.com" }
}
```

**Error Response:**

```
Error making GET request: Request timeout after 30000ms
```

## Response Format

All successful requests return:

- **Status**: HTTP status code
- **Headers**: Response headers
- **Body**: Response body as text

## Error Handling

All commands return descriptive error messages:

- **Timeout**: "Request timeout after Xms"
- **Network errors**: "Error making GET request: Failed to fetch"
- **Invalid URL**: Zod validation error

## License

MIT
npm package: @mcp-decorator/plugin-math
Description: Math operations plugin for MCP Decorator Framework
Author: fromsko
Latest version: 0.1.3

# @mcp-decorator/plugin-math

Math operations plugin for MCP Decorator Framework.

## Installation

```bash
npm install @mcp-decorator/plugin-math
# or
pnpm add @mcp-decorator/plugin-math
# or
bun add @mcp-decorator/plugin-math
```

## Usage

```typescript
import { createStdioServer } from "@mcp-decorator/core";
import { MathPlugin } from "@mcp-decorator/plugin-math";

createStdioServer({
  name: "my-server",
  plugins: [new MathPlugin()],
});
```

## Available Commands

### math.add

Add two numbers.

**Parameters:**

- `a` (number): First number
- `b` (number): Second number

**Example:**

```json
{
  "type": "math.add",
  "params": { "a": 5, "b": 3 }
}
```

**Response:**

```
5 + 3 = 8
```

### math.subtract

Subtract two numbers.

**Parameters:**

- `a` (number): First number
- `b` (number): Second number

**Example:**

```json
{
  "type": "math.subtract",
  "params": { "a": 10, "b": 4 }
}
```

**Response:**

```
10 - 4 = 6
```

### math.multiply

Multiply two numbers.

**Parameters:**

- `a` (number): First number
- `b` (number): Second number

**Example:**

```json
{
  "type": "math.multiply",
  "params": { "a": 6, "b": 7 }
}
```

**Response:**

```
6 × 7 = 42
```

### math.divide

Divide two numbers.

**Parameters:**

- `a` (number): Numerator
- `b` (number): Denominator

**Example:**

```json
{
  "type": "math.divide",
  "params": { "a": 20, "b": 4 }
}
```

**Response:**

```
20 ÷ 4 = 5
```

**Error Handling:**

Division by zero returns an error:

```json
{
  "type": "math.divide",
  "params": { "a": 10, "b": 0 }
}
```

**Response:**

```
Error: Division by zero is not allowed
```

## License

MIT