# Pfeiffer Vacuum Gauge Controller

Read pressure and gauge status from Pfeiffer TPG controllers, log measurements, and control ionisation gauges. Useful for tracking a pump-down or checking a vacuum setup.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 23
- Author: K-Dense-AI
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/K-Dense-AI/lab-instrument-mcps/tree/HEAD/servers/physics/pfeiffer-vacuum-gauge
- Updated: 2026-09-26
- HTML: https://affpapa.org/en/nevibecode/mcp/pfeiffer-vacuum-gauge-controller

## What it does

The MCP server gives an agent access to chamber and foreline pressure readings, connected gauge types, and pressure logging. It can change the displayed pressure unit and switch ionisation gauges on or off. Supported controllers are TPG 361/362/366 and TPG 261/262, using USB or Ethernet on TPG 36x and RS-232 on TPG 26x.

Connect the controller and provide its address before starting the server. TPG 36x must use the AUTO or MNE protocol setting rather than PV. Switching an ionisation gauge on is blocked when the measured pressure exceeds the configured limit; read-only mode is also available. Testing used a protocol simulator, not physical hardware, so the connection still needs validation with the actual controller.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `LABMCP_ADDRESS`, `LABMCP_SIMULATE`, `LABMCP_READ_ONLY`, `LABMCP_LIMITS` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio pfeiffer-vacuum-gauge -- uvx labmcp-pfeiffer-tpg
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-pfeiffer-tpg <command>

### Codex

**Platform CLI**
```bash
codex mcp add pfeiffer-vacuum-gauge --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> -- uvx labmcp-pfeiffer-tpg
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-pfeiffer-tpg <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "pfeiffer-vacuum-gauge": {
            "command": "uvx",
            "args": [
                "labmcp-pfeiffer-tpg"
            ],
            "env": {
                "LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
                "LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
                "LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
                "LABMCP_LIMITS": "<LABMCP_LIMITS>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-pfeiffer-tpg <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "pfeiffer-vacuum-gauge": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "labmcp-pfeiffer-tpg"
            ],
            "env": {
                "LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
                "LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
                "LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
                "LABMCP_LIMITS": "<LABMCP_LIMITS>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-pfeiffer-tpg <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e LABMCP_ADDRESS=<LABMCP_ADDRESS> -e LABMCP_SIMULATE=<LABMCP_SIMULATE> -e LABMCP_READ_ONLY=<LABMCP_READ_ONLY> -e LABMCP_LIMITS=<LABMCP_LIMITS> pfeiffer-vacuum-gauge uvx labmcp-pfeiffer-tpg
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-pfeiffer-tpg <command>

## When to use it
- read chamber and foreline pressure
- identify gauges connected to each channel
- record channel readings to a new CSV file
- change the pressure unit on the controller
- switch off an ionisation gauge as pressure rises

## Example prompts
- Read every channel and report the pressure readings in mbar.
- Log pressure readings for all channels to a new CSV file.
- Identify the connected gauges and switch off the ionisation gauge.

## Similar
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5585
- [arxiv-mcp-server](https://affpapa.org/en/nevibecode/mcp/arxiv-mcp-server.md) — MCP server · ★ 3235
- [PaperBanana](https://affpapa.org/en/nevibecode/mcp/paperbanana.md) — MCP server · ★ 2418
- [MATLAB MCP Server](https://affpapa.org/en/nevibecode/mcp/matlab-mcp-server.md) — MCP server · ★ 1723
- [Hex Research](https://affpapa.org/en/nevibecode/mcp/hex-research.md) — MCP server · ★ 584
- [DocsAgent — Zotero, Obsidian & Apple Notes MCP Server](https://affpapa.org/en/nevibecode/mcp/docsagent-zotero-obsidian-apple-notes-mcp-server.md) — MCP server · ★ 578

From the same set: [k-dense-ai/lab-instrument-mcps](https://affpapa.org/en/nevibecode/by/k-dense-ai/lab-instrument-mcps.md) — 28 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
