This package provides:
This package consumes:
Made for Pulsar!
This package was written specifically for Pulsar and did not exist in the Atom package repository.
MCP (Model Context Protocol) server for Pulsar editor - provides editor tools to Claude and other AI assistants.
mcp-tools serviceTo install pulsar-mcp search for pulsar-mcp in the Install pane of the Pulsar settings or run ppm install pulsar-mcp. Alternatively, you can run ppm install asiloisad/pulsar-pulsar-mcp to install a package directly from the GitHub repository.
| Command | Description |
|---|---|
Pulsar MCP: Start |
Start the MCP bridge server |
Pulsar MCP: Stop |
Stop the MCP bridge server |
Pulsar MCP: Status |
Show current bridge status and port |
| Setting | Description | Default |
|---|---|---|
| Auto Start | Automatically start bridge when Pulsar opens | true |
| Bridge Base Port | Base port for MCP bridge (auto-increments for multiple windows) | 3000 |
| Debug Mode | Enable debug logging to console | false |
| Tool | Description |
|---|---|
GetActiveEditor |
Get editor metadata (path, grammar, modified, lineCount) |
ReadText |
Read buffer content with line pagination support |
WriteText |
Write text at cursor or replace range |
OpenFile |
Open a file in editor with optional position |
SaveFile |
Save a file (active editor or specific path) |
GetSelections |
Get all selections/cursors with positions and text |
SetSelections |
Set multiple selections/cursors at specific positions |
CloseFile |
Close an editor tab |
GetProjectPaths |
Get project root folders |
AddProjectPath |
Add a folder to project roots |
Note: Editor tools (
ReadText,WriteText,GetSelections,SetSelections) operate on the active editor only. For reading/writing other files, use the agent's built-in file tools.
GetActiveEditor - Returns metadata only (use ReadText for content, GetSelections for cursors):
{ "path": "/file.js", "grammar": "JavaScript", "modified": false, "lineCount": 100 }
ReadText - Read buffer content with pagination for large files:
ReadText() // Full content (small files only)
ReadText({limit: 100}) // First 100 lines
ReadText({offset: 100, limit: 100}) // Lines 100-199
ReadText({start: {row: 0, column: 0}, end: {row: 50, column: 0}}) // Position range
// Returns: { content, path, totalLines, hasMore, range }
WriteText - Insert or replace text:
WriteText({text: "hello"}) // At cursor/selection
WriteText({text: "new", start: {row: 5, column: 0}}) // Insert at position
WriteText({text: "new", start: {...}, end: {...}}) // Replace range
The standalone MCP server (lib/server.js) can be used with any MCP-compatible client.
{
"mcpServers": {
"pulsar": {
"command": "node",
"args": ["~/.pulsar/packages/pulsar-mcp/lib/server.js"]
}
}
}
On Windows, use %USERPROFILE%\.pulsar\packages\pulsar-mcp\lib\server.js.
Other Pulsar packages can provide additional MCP tools by implementing the mcp-tools service:
// In your package.json
{
"providedServices": {
"mcp-tools": {
"versions": {
"1.0.0": "provideMcpTools"
}
}
}
}
// In your main.js
provideMcpTools() {
return [
{
name: "MyCustomTool",
description: "Description for the AI",
inputSchema: {
type: "object",
properties: {
param: { type: "string", description: "Parameter description" }
},
required: ["param"]
},
annotations: { readOnlyHint: true },
execute({ param }) {
// Tool implementation
return { result: "data" };
}
}
];
}
MCP 2025-11-25 supports tool annotations to hint behavior:
| Annotation | Description |
|---|---|
readOnlyHint |
true if tool only reads data, false if it modifies state |
destructiveHint |
true if tool performs destructive actions (e.g., closing files) |
The pulsar-mcp service provides:
// Get the service
consumePulsarMcp(service) {
// Get current bridge port
const port = service.getBridgePort();
// Check if bridge is running
const running = service.isRunning();
// Get path to MCP server script
const serverPath = service.getServerPath();
}
Got ideas to make this package better, found a bug, or want to help add new features? Just drop your thoughts on GitHub — any feedback's welcome!