npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

proctor-mcp-server

v0.1.5

Published

Local implementation of Proctor MCP server

Readme

Proctor MCP Server

Haven't heard about MCP yet? The easiest way to keep up-to-date is to read our weekly newsletter at PulseMCP.


This is an MCP (Model Context Protocol) Server for running Proctor exams against MCP servers. It provides tools for executing tests, managing exam infrastructure, and tracking test results through direct integration with the PulseMCP Proctor API.

Note: This is an internal tool for the PulseMCP team. The source code is public for reference purposes, but the server requires API keys that are not publicly available.

Table of Contents

Highlights

Exam Execution: Run Proctor exams against MCP servers to test functionality and protocol compliance.

Result Management: Save and retrieve exam results for comparison and regression testing.

Infrastructure Control: List, manage, and clean up Fly.io machines used for exam execution.

Tool Groups: Enable/disable tool groups via TOOL_GROUPS environment variable. Each group has a base variant (full access) and a _readonly variant (read-only access).

Streaming Results: Real-time exam execution logs with NDJSON streaming.

Capabilities

This server is built and tested on macOS with Claude Desktop. It should work with other MCP clients as well.

| Tool Name | Tool Group | Read/Write | Description | | ---------------------- | ---------- | ---------- | ----------------------------------------------------- | | get_proctor_metadata | exams | read | Get available runtimes and exams for Proctor testing. | | run_exam | exams | write | Execute a Proctor exam against an MCP server. | | get_machines | machines | read | List active Fly.io machines used for Proctor exams. | | destroy_machine | machines | write | Delete a Fly.io machine. | | cancel_exam | machines | write | Cancel a running Proctor exam. |

Tool Groups

This server organizes tools into groups that can be selectively enabled or disabled. Each group has two variants:

  • Base group (e.g., exams): Full read + write access
  • Readonly group (e.g., exams_readonly): Read-only access

Available Groups

| Group | Tools | Description | | ------------------- | ----- | -------------------------------------- | | exams | 2 | Full exam execution (read + write) | | exams_readonly | 1 | Exam metadata (read only) | | machines | 3 | Full machine management (read + write) | | machines_readonly | 1 | Machine listing (read only) |

Tools by Group

  • exams / exams_readonly:
    • Read-only: get_proctor_metadata
    • Write: run_exam
  • machines / machines_readonly:
    • Read-only: get_machines
    • Write: destroy_machine, cancel_exam

Environment Variables

| Variable | Description | Default | | ----------------- | ------------------------------------------- | ----------------------------- | | PROCTOR_API_KEY | API key for PulseMCP Proctor API (required) | - | | PROCTOR_API_URL | Base URL for Proctor API | https://admin.pulsemcp.com | | TOOL_GROUPS | Comma-separated list of enabled tool groups | exams,machines (all groups) |

Examples

Enable all tools with full access (default):

# No TOOL_GROUPS needed - all base groups enabled

Enable only exam tools:

TOOL_GROUPS=exams

Enable machines with read-only access:

TOOL_GROUPS=machines_readonly

Enable all groups with read-only access:

TOOL_GROUPS=exams_readonly,machines_readonly

Mix full and read-only access per group:

# Full exam access, read-only machines
TOOL_GROUPS=exams,machines_readonly

Usage Tips

  • Use get_proctor_metadata to discover available runtimes and exam types
  • Run exams with run_exam to test MCP servers with streaming progress logs
  • Use get_machines to monitor active exam infrastructure
  • Clean up machines with destroy_machine when no longer needed
  • Use cancel_exam to stop a stuck or slow exam before destroying the machine

Examples

Get Available Exams

User: What exams can I run with Proctor?
Assistant: I'll check what exams are available.

[Calls get_proctor_metadata]

Here are the available exams:

**Runtimes:**
- Proctor v0.0.37 (id: v0.0.37)

**Exams:**
- Auth Check (id: proctor-mcp-client-auth-check) - Verifies authentication mechanisms
- Init Tools List (id: proctor-mcp-client-init-tools-list) - Tests initialization and tool listing

Monitor Infrastructure

User: What machines are currently running?
Assistant: I'll check the active Fly machines.

[Calls get_machines]

There are 2 active machines:

1. **machine-abc123** - Running in sjc region (created 10 minutes ago)
2. **machine-def456** - Stopped in iad region (created 1 hour ago)

Setup

Claude Desktop

Make sure you have your Proctor API key ready.

Then proceed to the setup instructions below. If this is your first time using MCP Servers, you'll want to make sure you have the Claude Desktop application and follow the official MCP setup instructions.

Manual Setup

You're going to need Node working on your machine so you can run npx commands in your terminal. If you don't have Node, you can install it from nodejs.org.

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Modify your claude_desktop_config.json file to add the following:

{
  "mcpServers": {
    "proctor": {
      "command": "npx",
      "args": ["-y", "proctor-mcp-server"],
      "env": {
        "PROCTOR_API_KEY": "your-api-key-here",
        "TOOL_GROUPS": "exams,machines"
      }
    }
  }
}

Restart Claude Desktop and you should be ready to go!

For read-only access:

{
  "mcpServers": {
    "proctor-readonly": {
      "command": "npx",
      "args": ["-y", "proctor-mcp-server"],
      "env": {
        "PROCTOR_API_KEY": "your-api-key-here",
        "TOOL_GROUPS": "exams_readonly,machines_readonly"
      }
    }
  }
}

Development

Quick Setup

# Install dependencies
npm run install-all

# Build the server
npm run build

# Set your API key
export PROCTOR_API_KEY="your-api-key-here"

# Run the server
cd local && npm start

License

MIT