Skip to main content
Glama
amitdeshmukh

stdout-mcp-server

by amitdeshmukh
README.md
# stdout-mcp-server

A Model Context Protocol (MCP) server that captures and manages stdout logs through a named pipe system. This server is particularly useful for:
- Capturing logs from multiple processes or applications and making them available for debugging in Cursor IDE.
- Monitoring application output in real-time and providing a MCP interface to query, filter, and analyze logs

## How It Works

1. The server creates a named pipe at a specific location (`/tmp/stdout_pipe` on Unix/MacOS or `\\.\pipe\stdout_pipe` on Windows)

2. Any application can write logs to this pipe using standard output redirection. For example:
```bash
your_application | tee /tmp/stdout_pipe # or
your_application > /tmp/stdout_pipe
```
3. The server monitors the pipe, captures all incoming logs, and maintains a history of the last 100 entries

4. Through MCP tools, you can query, filter, and analyze these logs

## System Requirements

Before installing, please ensure you have:

* Node.js v18 or newer

## Installation Options

### Option 1: Installation in Cursor

1. Open Cursor and navigate to `Cursor > Settings > MCP Servers`
2. Click on "Add new MCP Server"
3. Update your MCP settings file with the following configuration:

```sh
name: stdout-mcp-server
type: command
command: npx stdout-mcp-server
```

### Option 2: Installation in other MCP clients

## Installation in other MCP clients
For macOS/Linux:
```json
{
  "mcpServers": {
    "stdio-mcp-server": {
      "command": "npx",
      "args": [
        "stdio-mcp-server"
      ]
    }
  }
}
```

For Windows:
```json
{
  "mcpServers": {
    "mcp-installer": {
      "command": "cmd.exe",
      "args": ["/c", "npx", "stdio-mcp-server"]
    }
  }
}
```

## Usage Examples

### Redirecting Application Logs

To send your application's output to the pipe:

```bash
# Unix/MacOS
your_application > /tmp/stdout_pipe

# Windows (PowerShell)
your_application > \\.\pipe\stdout_pipe
```

### Monitoring Multiple Applications

You can redirect logs from multiple sources:

```bash
# Application 1
app1 > /tmp/stdout_pipe &

# Application 2
app2 > /tmp/stdout_pipe &
```

### Querying Logs

Your AI will use the `get-logs` tool in your MCP client to retrieve and filter logs:

```typescript
// Get last 50 logs
get-logs()

// Get last 100 logs containing "error"
get-logs({ lines: 100, filter: "error" })

// Get logs since a specific timestamp
get-logs({ since: 1648675200000 }) // Unix timestamp in milliseconds
```

## Features

- Named pipe creation and monitoring
- Real-time log capture and storage
- Log filtering and retrieval through MCP tools
- Configurable log history (default: 100 entries)
- Cross-platform support (Windows and Unix-based systems)

## Named Pipe Locations

- Windows: `\\.\pipe\stdout_pipe`
- Unix/MacOS: `/tmp/stdout_pipe`

## Available Tools

### get-logs

Retrieve logs from the named pipe with optional filtering:

Parameters:
- `lines` (optional, default: 50): Number of log lines to return
- `filter` (optional): Text to filter logs by
- `since` (optional): Timestamp to get logs after

Example responses:
```typescript
// Response format
{
  content: [{
    type: "text",
    text: "[2024-03-20T10:15:30.123Z] Application started\n[2024-03-20T10:15:31.456Z] Connected to database"
  }]
}
```

## License

MIT License

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'get-logs' has a single, clearly defined purpose, so an agent cannot misselect between non-existent alternatives.

Naming Consistency5/5

The tool name 'get-logs' follows a verb_noun pattern, which is a consistent naming convention. Since there is only one tool, there are no deviations or mixed styles to evaluate, making it perfectly consistent.

Tool Count2/5

A single tool is too few for most server purposes, as it limits functionality and suggests a narrow scope. While it might be appropriate for a minimal logging utility, it lacks the breadth typically expected for an MCP server, making it borderline inadequate.

Completeness3/5

Inferring the domain as log retrieval, the tool 'get-logs' covers the core read operation but lacks other typical functionalities like clearing logs, setting log levels, or managing log sources. This creates notable gaps that could hinder agent workflows, though the basic retrieval is present.

Maintenance

ActivityInactive
ResponsivenessNo issues