Developer Tools MCP Server
Entwicklerressourcen einschließlich GitHub, npm, PyPI, Docker Hub, GitLab und StackOverflow
Dokumentation
🔧 Dev Tools MCP — GitHub, npm, PyPI, StackOverflow, arXiv (nexgendata/developer-tools-mcp-server) Actor
MCP server giving AI agents 7 tools: GitHub repo lookup & search, npm & PyPI package metadata, Stack Overflow search, plus arXiv & Google Scholar academic search. Works with Claude, GPT & any MCP client.
- URL: https://apify.com/nexgendata/developer-tools-mcp-server.md
- Developed by: NexGenData (community)
- Categories: AI, Developer tools, MCP servers
- Stats: 7 total users, 4 monthly users, 100.0% runs succeeded, 1 bookmarks
- User rating: No ratings yet
Pricing
from $10.00 / 1,000 results
This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event
What's an Apify Actor?
Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases. In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours, and optionally produces a well-defined JSON output, datasets with results, or files in key-value store. In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server. Actors are written with capital "A".
How to integrate an Actor?
If asked about integration, you help developers integrate Actors into their projects. You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready. The best way to integrate Actors is as follows.
In JavaScript/TypeScript projects, use official JavaScript/TypeScript client:
npm install apify-client
In Python projects, use official Python client library:
pip install apify-client
In shell scripts, use Apify CLI:
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash
In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).
If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).
For usage examples, see the [API](#api) section below.
For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).
# README
## 🤖 Developer Tools MCP Server — GitHub, npm, PyPI, Stack Overflow, arXiv & Google Scholar for Claude / ChatGPT
Connect AI coding and research agents to live developer and academic data through the Model Context Protocol (MCP). One server exposes GitHub repository lookup and search, npm and PyPI package metadata, Stack Overflow search, and academic search across arXiv and Google Scholar.
### What You Get
This MCP server exposes **7 tools** to your AI agent:
- **`get_github_repo`** — fetch metadata for a specific GitHub repository
- **`search_github`** — search GitHub repositories by keyword
- **`get_npm_package`** — fetch metadata for an npm package
- **`get_pypi_package`** — fetch metadata for a PyPI package
- **`search_stackoverflow`** — search Stack Overflow questions
- **`search_arxiv`** — search arXiv for research papers
- **`search_google_scholar`** — search Google Scholar for academic results
All responses are returned as structured JSON optimized for LLM function-calling.
### Use Cases
- **AI engineering assistants** — look up package and repository metadata while answering coding questions
- **Tech-stack research agents** — search GitHub and package registries to compare libraries
- **Developer Q&A agents** — pull relevant Stack Overflow questions into a conversation
- **Research agents** — search arXiv and Google Scholar for papers on a topic
- **n8n / Make.com workflows** — trigger MCP tool calls as part of an automation
### Quick Start (Claude Desktop / MCP clients)
This actor runs in standby mode and exposes an MCP endpoint. Add it to any MCP-compatible client (Claude Desktop, Cursor, Cline) using the actor's MCP URL with your Apify API token. Claude can then call any of the 7 tools above during a conversation.
### FAQ
**Q: Does this need a GitHub token?**
No — you only need your Apify API token.
**Q: How do I connect Claude Desktop to this server?**
Apify exposes this actor as an MCP endpoint. Add the actor's MCP URL (with your token) to your Claude Desktop MCP config.
**Q: Can I add this MCP server to Cursor or Cline?**
Yes — any MCP-compatible client works with the same endpoint URL.
### Related NexGenData MCP Servers
| Use case | Actor |
|----------|-------|
| News data + media monitoring for AI agents | [News MCP Server](https://apify.com/nexgendata/news-mcp-server?fpr=2ayu9b) |
| Finance + stock data for AI agents | [Finance MCP Server](https://apify.com/nexgendata/finance-mcp-server?fpr=2ayu9b) |
| Real estate + property data for AI agents | [Real Estate MCP Server](https://apify.com/nexgendata/real-estate-mcp-server?fpr=2ayu9b) |
### About NexGenData
NexGenData publishes a family of MCP servers and data actors for AI agent workflows. Browse the full catalog at https://apify.com/nexgendata?fpr=2ayu9b
# Actor input Schema
## Actor input object example
```json
{}
API
You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.
JavaScript example
import { ApifyClient } from 'apify-client';
// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
token: '<YOUR_API_TOKEN>',
});
// Prepare Actor input
const input = {};
// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/developer-tools-mcp-server").call(input);
// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.dir(item);
});
// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs
Python example
from apify_client import ApifyClient
# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")
# Prepare the Actor input
run_input = {}
# Run the Actor and wait for it to finish
run = client.actor("nexgendata/developer-tools-mcp-server").call(run_input=run_input)
# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start
CLI example
echo '{}' |
apify call nexgendata/developer-tools-mcp-server --silent --output-dataset
MCP server setup
{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=nexgendata/developer-tools-mcp-server",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}
OpenAPI specification
{
"openapi": "3.0.1",
"info": {
"title": "🔧 Dev Tools MCP — GitHub, npm, PyPI, StackOverflow, arXiv",
"description": "MCP server giving AI agents 7 tools: GitHub repo lookup & search, npm & PyPI package metadata, Stack Overflow search, plus arXiv & Google Scholar academic search. Works with Claude, GPT & any MCP client.",
"version": "0.0",
"x-build-id": "c43x940oimFUuP5N5"
},
"servers": [
{
"url": "https://api.apify.com/v2"
}
],
"paths": {
"/acts/nexgendata~developer-tools-mcp-server/run-sync-get-dataset-items": {
"post": {
"operationId": "run-sync-get-dataset-items-nexgendata-developer-tools-mcp-server",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/acts/nexgendata~developer-tools-mcp-server/runs": {
"post": {
"operationId": "runs-sync-nexgendata-developer-tools-mcp-server",
"x-openai-isConsequential": false,
"summary": "Executes an Actor and returns information about the initiated run in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/runsResponseSchema"
}
}
}
}
}
}
},
"/acts/nexgendata~developer-tools-mcp-server/run-sync": {
"post": {
"operationId": "run-sync-nexgendata-developer-tools-mcp-server",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
}
},
"components": {
"schemas": {
"inputSchema": {
"type": "object",
"properties": {}
},
"runsResponseSchema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"actId": {
"type": "string"
},
"userId": {
"type": "string"
},
"startedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"finishedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"status": {
"type": "string",
"example": "READY"
},
"meta": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"example": "API"
},
"userAgent": {
"type": "string"
}
}
},
"stats": {
"type": "object",
"properties": {
"inputBodyLen": {
"type": "integer",
"example": 2000
},
"rebootCount": {
"type": "integer",
"example": 0
},
"restartCount": {
"type": "integer",
"example": 0
},
"resurrectCount": {
"type": "integer",
"example": 0
},
"computeUnits": {
"type": "integer",
"example": 0
}
}
},
"options": {
"type": "object",
"properties": {
"build": {
"type": "string",
"example": "latest"
},
"timeoutSecs": {
"type": "integer",
"example": 300
},
"memoryMbytes": {
"type": "integer",
"example": 1024
},
"diskMbytes": {
"type": "integer",
"example": 2048
}
}
},
"buildId": {
"type": "string"
},
"defaultKeyValueStoreId": {
"type": "string"
},
"defaultDatasetId": {
"type": "string"
},
"defaultRequestQueueId": {
"type": "string"
},
"buildNumber": {
"type": "string",
"example": "1.0.0"
},
"containerUrl": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "integer",
"example": 1
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
},
"usageTotalUsd": {
"type": "number",
"example": 0.00005
},
"usageUsd": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "number",
"example": 0.00005
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
}
}
}
}
}
}
}
}