Gathering detailed insights and metrics for @purinton/developer
Gathering detailed insights and metrics for @purinton/developer
Gathering detailed insights and metrics for @purinton/developer
Gathering detailed insights and metrics for @purinton/developer
A Model Context Protocol (MCP) server providing a set of custom tools for AI and automation workflows. Easily extendable with your own tools.
npm install @purinton/developer
Typescript
Module System
Node Version
NPM Version
JavaScript (95.01%)
Dockerfile (4.99%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
75 Commits
1 Branches
1 Contributors
Updated on Jul 11, 2025
Latest Version
1.0.23
Package Id
@purinton/developer@1.0.23
Unpacked Size
34.96 kB
Size
8.95 kB
File Count
19
NPM Version
10.9.2
Node Version
22.17.0
Published on
Jul 11, 2025
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
1
A Model Context Protocol (MCP) server providing a set of custom tools for AI and automation workflows. Easily extendable with your own tools.
This project is an MCP server built on @purinton/mcp-server
. It exposes a set of tools via the Model Context Protocol, making them accessible to AI agents and automation clients.
Key Features:
tools/
directoryBelow is a list of tools provided by this MCP server. Each tool can be called via the MCP protocol or HTTP API.
Description: Run bash script on the remote Linux server.
Input Schema:
1{ "script": "string", "cwd": "string (optional)" }
Example Request:
1{ 2 "tool": "bash-script", 3 "args": { "script": "echo Hello", "cwd": "/tmp" } 4}
Example Response:
1{ 2 "stdout": "Hello\n", 3 "stderr": "", 4 "exitCode": 0, 5 "timedOut": false 6}
Description: Execute a command or array of commands on the remote Linux server.
Input Schema:
1{ 2 "commands": [ 3 { "command": "string", "cwd": "string (optional)", "env": { "VAR": "value" } } 4 ] 5}
Example Request:
1{ 2 "tool": "exec-command", 3 "args": { 4 "commands": [ 5 { "command": "ls -l", "cwd": "/tmp" } 6 ] 7 } 8}
Example Response:
1{ 2 "results": [ 3 { "stdout": "...", "stderr": "", "exitCode": 0, "timedOut": false } 4 ] 5}
Description: Run a JavaScript script with Node.js on the remote Linux server.
Input Schema:
1{ "script": "string", "cwd": "string (optional)" }
Example Request:
1{ 2 "tool": "java-script", 3 "args": { "script": "console.log('hi')", "cwd": "/tmp" } 4}
Example Response:
1{ 2 "stdout": "hi\n", 3 "stderr": "", 4 "exitCode": 0, 5 "timedOut": false 6}
Description: Run PHP script on the remote Linux server.
Input Schema:
1{ "script": "string", "cwd": "string (optional)" }
Example Request:
1{ 2 "tool": "php-script", 3 "args": { "script": "<?php echo 'hi'; ?>", "cwd": "/tmp" } 4}
Example Response:
1{ 2 "stdout": "hi", 3 "stderr": "", 4 "exitCode": 0, 5 "timedOut": false 6}
Description: Run Python script on the remote Linux server.
Input Schema:
1{ "script": "string", "cwd": "string (optional)" }
Example Request:
1{ 2 "tool": "python-script", 3 "args": { "script": "print('hi')", "cwd": "/tmp" } 4}
Example Response:
1{ 2 "stdout": "hi\n", 3 "stderr": "", 4 "exitCode": 0, 5 "timedOut": false 6}
Description: Read file content on the remote Linux server.
Input Schema:
1{ "path": "string" }
Example Request:
1{ 2 "tool": "read-file", 3 "args": { "path": "/etc/hostname" } 4}
Example Response:
1{ 2 "content": "myhostname\n" 3}
Description: Run SQL queries on the remote Linux server (multiple databases and queries supported).
Input Schema:
1{ 2 "batches": [ 3 { "database": "string (optional)", "queries": ["string"] } 4 ] 5}
Example Request:
1{ 2 "tool": "sql-query", 3 "args": { 4 "batches": [ 5 { "database": "testdb", "queries": ["SELECT 1"] } 6 ] 7 } 8}
Example Response:
1{ 2 "results": [ 3 { 4 "database": "testdb", 5 "results": [ 6 { "query": "SELECT 1", "success": true, "rows": [{"1":1}], "rowCount": 1 } 7 ] 8 } 9 ] 10}
Description: Execute multiple commands on multiple remote servers via SSH.
Input Schema:
1{ 2 "connections": [ 3 { "host": "string", "username": "string (optional)", "commands": ["string"] } 4 ] 5}
Example Request:
1{ 2 "tool": "ssh-exec", 3 "args": { 4 "connections": [ 5 { "host": "1.2.3.4", "username": "root", "commands": ["uptime"] } 6 ] 7 } 8}
Example Response:
1{ 2 "results": [ 3 { 4 "host": "1.2.3.4", 5 "username": "root", 6 "results": [ 7 { "stdout": " 10:00:00 up 1 day, ...\n", "stderr": "", "exitCode": 0, "timedOut": false } 8 ] 9 } 10 ] 11}
Description: Write file on the remote Linux server.
Input Schema:
1{ "path": "string", "content": "string", "owner": "string (optional)", "group": "string (optional)", "chmod": "string (optional)" }
Example Request:
1{ 2 "tool": "write-file", 3 "args": { "path": "/tmp/test.txt", "content": "hello", "chmod": "644" } 4}
Example Response:
1{ 2 "bytesWritten": 5 3}
To use the language-specific tools (such as python-script
, php-script
, java-script
), you must have the corresponding interpreters installed on your server:
java-script
toolpython-script
toolphp-script
toolMake sure these interpreters are available in your system's PATH. If you do not have them installed, the related tools will not function.
Install dependencies:
1npm install
Configure environment variables:
MCP_PORT
: (optional) Port to run the server (default: 1234)MCP_TOKEN
: (optional) Bearer token for authenticationStart the server:
1node developer.mjs
Call tools via HTTP or MCP client.
See the @purinton/mcp-server documentation for protocol/API details.
To add a new tool:
tools/
directory (e.g., tools/mytool.mjs
):1import { z, buildResponse } from '@purinton/mcp-server'; 2export default async function ({ mcpServer, toolName, log }) { 3 mcpServer.tool( 4 toolName, 5 "Write a brief description of your tool here", 6 { echoText: z.string() }, 7 async (_args,_extra) => { 8 log.debug(`${toolName} Request`, { _args }); 9 const response = 'Hello World!'; 10 log.debug(`${toolName} Response`, { response }); 11 return buildResponse(response); 12 } 13 ); 14}
You can add as many tools as you like. Each tool is a self-contained module.
You can run this server as a background service on Linux using the provided developer.service
file.
Copy developer.service
to your systemd directory (usually /etc/systemd/system/
):
1sudo cp developer.service /usr/lib/systemd/system/
WorkingDirectory
and ExecStart
paths in the service file match where your project is installed (default: /opt/developer
)./opt/developer/.env
if you use one.1sudo systemctl daemon-reload 2sudo systemctl enable developer 3sudo systemctl start developer
1sudo systemctl status developer
The server will now run in the background and restart automatically on failure or reboot.
You can run this MCP server in a Docker container using the provided Dockerfile
.
1docker build -t developer .
Set your environment variables (such as MCP_TOKEN
) and map the port as needed. The app will run as the developer
user, and the /home/developer/app
directory will be used for persistent storage:
1docker run -d \ 2 -e MCP_TOKEN=your_secret_token \ 3 -e MCP_PORT=1234 \ 4 -v /your/local/appdir:/home/developer/app \ 5 -p 1234:1234 \ 6 --name developer \ 7 developer
/your/local/appdir
with a directory on your host to persist app data and configuration.your_secret_token
with your desired token.-e MCP_PORT
and -p
values.If you make changes to the code, rebuild the image and restart the container:
1docker build -t developer . 2docker stop developer && docker rm developer 3# Then run the container again as above
For help, questions, or to chat with the author and community, visit:
No vulnerabilities found.
No security vulnerabilities found.