{"_id":"@247arjun/mcp-curl","name":"@247arjun/mcp-curl","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@247arjun/mcp-curl","version":"1.0.0","description":"A Model Context Protocol (MCP) server that provides curl functionality for making HTTP requests","main":"build/index.js","type":"module","bin":{"mcp-curl":"build/index.js"},"scripts":{"build":"tsc && chmod +x build/index.js","start":"node build/index.js","dev":"tsc --watch","test":"echo \"Tests require dev dependencies. Run 'npm install' to install them.\" && exit 0","test:watch":"jest --watch","lint":"eslint src/**/*.ts","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","curl","http","api","requests","ai","assistant"],"author":{"name":"247arjun"},"license":"MIT","homepage":"https://github.com/247arjun/mcp-curl#readme","repository":{"type":"git","url":"git+https://github.com/247arjun/mcp-curl.git"},"bugs":{"url":"https://github.com/247arjun/mcp-curl/issues"},"engines":{"node":">=18.0.0"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^22.16.5","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.5.0","typescript":"^5.8.3"},"dependencies":{"@modelcontextprotocol/sdk":"^1.16.0","zod":"^3.25.76"},"jest":{"testEnvironment":"node","testMatch":["**/test/**/*.test.js"],"collectCoverageFrom":["src/**/*.ts","!src/**/*.d.ts"]},"_id":"@247arjun/mcp-curl@1.0.0","gitHead":"2be05142843eb2213bd9e8fe07be6ac831a25ef4","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-W8xIJ2ZUyXVteO5RrTDUgt9VNZGgDuRpZJvdLEo2XJVXRO30AZM4FTWIfrFBMnaEI2oX9POhM/iTdbh3V9IsRQ==","shasum":"76b5366c574500fb491a0d29e759ade7113067d5","tarball":"https://registry.npmjs.org/@247arjun/mcp-curl/-/mcp-curl-1.0.0.tgz","fileCount":7,"unpackedSize":31634,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDSapM8SyWgTlNm3zqOPvTmuB6KfEUXf9dcs2TnMyOcVAiEAtX3nZDZAJyLCA+HBrPYEuazwIatD4hhuzHmR6q4Mj3o="}]},"_npmUser":{"name":"247arjun","email":"247arjun@gmail.com"},"directories":{},"maintainers":[{"name":"247arjun","email":"247arjun@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-curl_1.0.0_1753565147016_0.29982627466002376"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-26T21:25:46.740Z","1.0.0":"2025-07-26T21:25:47.213Z","modified":"2025-07-26T21:25:47.567Z"},"maintainers":[{"name":"247arjun","email":"247arjun@gmail.com"}],"description":"A Model Context Protocol (MCP) server that provides curl functionality for making HTTP requests","homepage":"https://github.com/247arjun/mcp-curl#readme","keywords":["mcp","model-context-protocol","curl","http","api","requests","ai","assistant"],"repository":{"type":"git","url":"git+https://github.com/247arjun/mcp-curl.git"},"author":{"name":"247arjun"},"bugs":{"url":"https://github.com/247arjun/mcp-curl/issues"},"license":"MIT","readme":"# mcp-curl\n\nA Model Context Protocol (MCP) server that provides curl functionality, allowing AI assistants to make HTTP requests directly from their environment.\n\n## Features\n\n- **HTTP Methods**: Support for GET, POST, PUT, DELETE requests\n- **File Downloads**: Download files with curl\n- **Advanced Options**: Custom headers, timeouts, redirects, and more\n- **JSON Support**: Built-in JSON data handling for POST/PUT requests\n- **User Agent**: Custom User-Agent string support\n- **Security**: Safe subprocess execution with input validation\n\n## Installation\n\n### From GitHub\n\n```bash\ngit clone https://github.com/247arjun/mcp-curl.git\ncd mcp-curl\nnpm install\nnpm run build\n```\n\n### From npm (when published)\n\n```bash\nnpm install -g mcp-curl\n```\n\n## Usage\n\n### As an MCP Server\n\nAdd to your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-curl\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mcp-curl/build/index.js\"]\n    }\n  }\n}\n```\n\n### Claude Desktop Configuration\n\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-curl\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/mcp-curl/build/index.js\"]\n    }\n  }\n}\n```\n\n### Available Tools\n\nThe server provides the following tools:\n\n#### curl_get\nMake HTTP GET requests\n```json\n{\n  \"url\": \"https://api.example.com/data\",\n  \"headers\": [\"Authorization: Bearer token\"],\n  \"timeout\": 30,\n  \"follow_redirects\": true,\n  \"user_agent\": \"MyApp/1.0\"\n}\n```\n\n#### curl_post\nMake HTTP POST requests with data\n```json\n{\n  \"url\": \"https://api.example.com/data\",\n  \"json_data\": {\"key\": \"value\"},\n  \"headers\": [\"Content-Type: application/json\"]\n}\n```\n\n#### curl_put\nMake HTTP PUT requests\n```json\n{\n  \"url\": \"https://api.example.com/data/123\",\n  \"data\": \"raw data\",\n  \"content_type\": \"text/plain\"\n}\n```\n\n#### curl_delete\nMake HTTP DELETE requests\n```json\n{\n  \"url\": \"https://api.example.com/data/123\",\n  \"headers\": [\"Authorization: Bearer token\"]\n}\n```\n\n#### curl_download\nDownload files\n```json\n{\n  \"url\": \"https://example.com/file.zip\",\n  \"output_filename\": \"downloaded_file.zip\",\n  \"resume\": true\n}\n```\n\n#### curl_advanced\nExecute curl with custom arguments\n```json\n{\n  \"args\": [\"-X\", \"PATCH\", \"-H\", \"Content-Type: application/json\", \"-d\", \"{\\\"status\\\":\\\"updated\\\"}\", \"https://api.example.com/items/1\"]\n}\n```\n\n## Development\n\n### Prerequisites\n\n- Node.js 18.0.0 or higher\n- npm package manager\n- curl command-line tool\n\n### Building\n\n```bash\nnpm run build\n```\n\n### Testing\n\nTest the server manually:\n\n```bash\necho '{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"tools/list\", \"params\": {}}' | node build/index.js\n```\n\nRun tests:\n```bash\nnpm test\n```\n\n### Linting\n\n```bash\nnpm run lint\nnpm run lint:fix\n```\n\n### Project Structure\n\n```\nmcp-curl/\n├── src/\n│   └── index.ts          # Main server implementation\n├── build/\n│   └── index.js          # Compiled JavaScript\n├── test/\n│   └── basic.test.js     # Basic functionality tests\n├── examples/\n│   └── test-server.js    # Example usage\n├── .github/\n│   └── workflows/\n│       └── ci.yml        # CI/CD pipeline\n├── package.json          # Project configuration\n├── tsconfig.json         # TypeScript configuration\n├── .eslintrc.json        # ESLint configuration\n├── LICENSE               # MIT License\n├── DEPLOYMENT.md         # Deployment guide\n├── CONTRIBUTING.md       # Contribution guidelines\n├── CHANGELOG.md          # Version history\n└── README.md             # This file\n```\n\n## Security Considerations\n\n- Input validation and sanitization for all curl arguments\n- Restricted file operations in advanced mode\n- Safe subprocess execution using spawn instead of shell\n- No arbitrary shell command execution\n\n## Requirements\n\n- Node.js 18.0.0 or higher\n- curl command-line tool installed on the system\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n## Deployment\n\nSee [DEPLOYMENT.md](DEPLOYMENT.md) for detailed deployment instructions and configuration examples.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for version history and changes.\n","readmeFilename":"README.md","_rev":"1-92247f9e71ba2ec25c7a8d42cee20631"}