npc
Enables interaction with Discord via real browser control, allowing actions like sending messages, navigating servers, and more without separate API keys.
Enables interaction with Gmail via real browser control, allowing actions like reading inbox, sending emails, and more without separate API keys.
Enables interaction with Messenger via real browser control, allowing actions like sending messages, replying to conversations, and more without separate API keys.
Enables interaction with Slack via real browser control, allowing actions like sending messages, navigating channels, and more without separate API keys.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@npcmessage Tim on Slack that deploy is done"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
npm i -g npc-agentWhat it does
Your IDE agent says what to do ("message Anna on Slack"). NPC does it in your real, logged-in browser. No API keys per service, no OAuth, no bot accounts. Works with any MCP IDE - Cursor, VS Code, Windsurf.
You want to | Your IDE says |
Message someone on Slack | "go to slack and message #general: deploy is done" |
Reply on Messenger | "open messenger and reply to Anna: sounds good" |
Check Gmail | "take a screenshot of my gmail inbox" |
Fill out a form | "find the email field, click it, type my address, press Tab" |
Do it all in one shot | use |
Related MCP server: Scout
Setup
Install:
npm i -g npc-agentLoad the extension:
chrome://extensions> Developer mode > Load unpacked > selectnpc-cli/extension/Add to
.cursor/mcp.jsonor.vscode/mcp.json:
{
"mcpServers": {
"npc": {
"command": "node",
"args": ["/path/to/npc/npc-cli/dist/index.js"]
}
}
}Click the NPC icon on any tab. Green badge means connected.
How it works
IDE (Cursor / VS Code) NPC Server Browser
| | |
|--- MCP stdio ------------->| |
| "click Send button" |--- WebSocket :7221 -->|
| | |--- CDP (chrome.debugger)
| | |--- clicks in real tab
| |<-- result ------------|
|<-- tool response ----------| |The IDE handles reasoning. NPC just executes browser actions via Chrome DevTools Protocol. No LLM inside NPC.
MCP tools
Tool | What it does |
| Capture tab as PNG |
| Go to a URL |
| Click at (x, y) |
| Type text into focused element |
| Press Enter, Tab, Escape, arrows |
| Scroll up/down/left/right |
| Find element by CSS selector or text, returns (x, y) center |
| Run multiple actions in one call |
| Run JavaScript in page context |
| Get all text from the page |
| Get full page HTML |
| Get current tab URL |
| Get current tab title |
| Fetch any URL with browser cookies (bypasses CORS) |
| Check Microsoft Teams for unread messages |
Batch example
One MCP call instead of four:
[
{"action": "find", "selector": "Message Anna"},
{"action": "click", "x": 450, "y": 320},
{"action": "type", "text": "hey, deploy is done"},
{"action": "key", "key": "Enter"}
]Limitations
Chrome and Brave only (uses chrome.debugger API). One active tab at a time per extension instance. Cannot attach to chrome://, brave://, or extension pages. Screenshot coordinates are at device pixel ratio - divide by DPR before clicking on HiDPI displays.
Requires Node.js >= 18.
Contact
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/freyzo/npc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server