mcp-auditor

MCP Auditor

npm version npm downloads License: MIT

English δΈ­ζ–‡

A TypeScript tool for auditing all interactions with MCP (Model Context Protocol) servers. It intercepts and logs all I/O operations from MCP servers through a transparent proxy approach, generating comprehensive audit logs to help developers debug, monitor, and ensure compliance in MCP applications.

Features

Quick Start

Installation

As a library (recommended):

npm install mcp-auditor

From source:

git clone https://github.com/algovate/mcp-auditor.git
cd mcp-auditor
npm install
npm run build

As a global CLI:

npm install -g mcp-auditor

Run as Server

Using global CLI (after npm install -g mcp-auditor):

# Set environment variables
export MCP_WRAPPED_SERVER_COMMAND=npx
export MCP_WRAPPED_SERVER_ARGS="-y,@modelcontextprotocol/server-filesystem,/tmp"
export MCP_LOG_FILE=./logs/mcp-server.log

# Run the server
mcp-auditor

Using configuration file:

# Create config.json
cat > config.json << EOF
{
  "name": "mcp-auditor-server",
  "version": "1.0.0",
  "wrappedServer": {
    "serverCommand": "npx",
    "serverArgs": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
    "logFilePath": "./logs/mcp-server.log"
  }
}
EOF

# Run with config
export MCP_CONFIG_FILE=./config.json
mcp-auditor

From source:

# Configure environment variables
export MCP_WRAPPED_SERVER_COMMAND=npx
export MCP_WRAPPED_SERVER_ARGS="-y,@modelcontextprotocol/server-filesystem,/tmp"
export MCP_LOG_FILE=./logs/mcp-server.log

# Start the server
npm start

Use as Library

import { MCPWrapper } from 'mcp-auditor';

const wrapper = new MCPWrapper({
  serverCommand: 'npx',
  serverArgs: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'],
  logFilePath: './logs/mcp-wrapper.log'
});

await wrapper.connect();
const tools = wrapper.getTools();
const result = await wrapper.callTool('read_file', { path: '/tmp/example.txt' });
await wrapper.disconnect();

Documentation

For comprehensive documentation, please see:

Project Structure

mcp-auditor/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ core/              # Core wrapper functionality
β”‚   β”‚   β”œβ”€β”€ wrapper.ts     # Main MCPWrapper class
β”‚   β”‚   β”œβ”€β”€ logger.ts      # Logger implementation
β”‚   β”‚   └── types.ts       # TypeScript types
β”‚   β”œβ”€β”€ server/            # Server-specific code
β”‚   β”‚   β”œβ”€β”€ server.ts      # MCP server implementation
β”‚   β”‚   └── config.ts      # Configuration loader
β”‚   └── index.ts           # Main entry point
β”œβ”€β”€ examples/
β”‚   β”œβ”€β”€ library/           # Library usage examples
β”‚   └── server/            # Server usage examples
β”œβ”€β”€ docs/                  # Documentation
β”œβ”€β”€ dist/                  # Compiled output
└── logs/                  # Log files

License

MIT


For detailed usage instructions, API documentation, and examples, please refer to the full documentation.