ipdata MCP by usefulapi
Look up location, network, company and threat data for IP addresses and ASNs in ipdata.
제작자가 쓴 설명(영어 원문)
MCP server for OWASP ZAP vulnerability scanning with Docker management
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
ZAP_BASE_URL, ZAP_API_KEY어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"zap": {
"command": "dnx",
"args": [
"dotnet-zap-mcp",
"--yes"
],
"env": {
"ZAP_BASE_URL": "your-value",
"ZAP_API_KEY": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add zap --env ZAP_BASE_URL=your-value --env ZAP_API_KEY=your-value -- dnx dotnet-zap-mcp --yes실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"zap": {
"command": "dnx",
"args": [
"dotnet-zap-mcp",
"--yes"
],
"env": {
"ZAP_BASE_URL": "your-value",
"ZAP_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"zap": {
"type": "stdio",
"command": "dnx",
"args": [
"dotnet-zap-mcp",
"--yes"
],
"env": {
"ZAP_BASE_URL": "your-value",
"ZAP_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
ZAP_BASE_URL envZAP_API_KEY env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 pierre3 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.1.0)은 7개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 .NET도 있어야 해요.
같은 카테고리에는: ipdata MCP by usefulapi, MaxMind minFraud MCP by usefulapi, Lambda Labs MCP by usefulapi
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Look up location, network, company and threat data for IP addresses and ASNs in ipdata.
MCP server for MaxMind minFraud — score transactions for fraud risk from your AI assistant.
Read GPU instances, types, images, filesystems and firewall rules; launch and terminate instances.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
MCP (Model Context Protocol) server for OWASP ZAP. Enables AI agents (Claude, GitHub Copilot, etc.) to drive ZAP vulnerability scanning via MCP.
dotnet tool install -g dotnet-zap-mcp
docker compose support (for built-in ZAP container management)No configuration needed. The agent calls DockerComposeUp which automatically:
~/.zap-mcp/docker/localhost:8090The ZAP container uses two Docker named volumes:
| Volume | Container Path | Purpose |
|---|---|---|
zap-home | /home/zap/.ZAP | ZAP settings, contexts, sessions, scan policies (persisted across restarts) |
zap-data | /zap/wrk/data | Shared directory for reports, session files, and context import/export |
On the first launch, the template config.xml is copied into zap-home. On subsequent launches, only the API key is updated — any changes made through ZAP (contexts, authentication settings, scan policies, etc.) are preserved.
The zap-data volume contains:
reports/ — generated scan reportssessions/ — saved ZAP sessionscontexts/ — exported context filesAdd to your MCP configuration:
{
"mcpServers": { "zap": { "command": "zap-mcp" } } }
Add to .vscode/mcp.json:
{
"servers": { "zap": { "command": "zap-mcp" } } }
If you already have a ZAP instance running, pass connection details via environment variables:
{
"mcpServers": { "zap": { "command": "zap-mcp", "env": { "ZAP_BASE_URL": "http://localhost:8090", "ZAP_API_KEY": "your-api-key" } } } }
| Tool | Parameters | Description |
|---|---|---|
DockerComposeUp | — | Start the ZAP container and wait for healthy |
DockerComposeDown | — | Stop and remove the ZAP container |
DockerComposeStatus | — | Check container status |
DockerComposeLogs | tail | Get recent container logs |
| Tool | Parameters | Description |
|---|---|---|
GetVersion | — | Verify ZAP connectivity |
GetHosts | — | List recorded hosts |
GetSites | — | List recorded sites |
GetUrls | baseUrl | List recorded URLs for a base URL |
| Tool | Parameters | Description |
|---|---|---|
StartSpider | url, maxChildren, recurse, subtreeOnly, contextName | Start a spider scan to crawl and discover pages |
GetSpiderStatus | scanId | Check spider progress (0-100%) |
GetSpiderResults | scanId | Get URLs discovered by spider |
StopSpider | scanId | Stop a running spider scan |
| Tool | Parameters | Description |
|---|---|---|
StartActiveScan | url, recurse, inScopeOnly, scanPolicyName, contextId | Start an active vulnerability scan |
GetActiveScanStatus | scanId | Check active scan progress (0-100%) |
StopActiveScan | scanId | Stop a running active scan |
| Tool | Parameters | Description |
|---|---|---|
GetPassiveScanStatus | — | Check passive scan progress (records remaining) |
| Tool | Parameters | Description |
|---|---|---|
GetAlertsSummary | baseUrl | Alert counts by risk level |
GetAlerts | baseUrl, start, count, riskId | Detailed alert list with pagination and risk filter |
| Tool | Parameters | Description |
|---|---|---|
GetHtmlReport | — | Generate HTML scan report |
GetJsonReport | — | Generate JSON scan report |
GetXmlReport | — | Generate XML scan report |
| Tool | Parameters | Description |
|---|---|---|
GetContextList | — | List all contexts defined in ZAP |
GetContext | contextName | Get context details (scope patterns, etc.) |
CreateContext | contextName | Create a new context |
RemoveContext | contextName | Delete a context |
IncludeInContext | contextName, regex | Add URL include pattern to context scope |
ExcludeFromContext | contextName, regex | Add URL exclude pattern to context scope |
ImportContext | contextFilePath | Import a context file into ZAP |
ExportContext | contextName, contextFilePath | Export a context to file |
| Tool | Parameters | Description |
|---|---|---|
GetAuthenticationMethod | contextId | Get the authentication method configured for a context |
SetAuthenticationMethod | contextId, authMethodName, authMethodConfigParams | Set authentication method (form-based, JSON-based, script-based, HTTP) |
SetLoggedInIndicator | contextId, loggedInIndicatorRegex | Set regex pattern indicating logged-in state |
SetLoggedOutIndicator | contextId, loggedOutIndicatorRegex | Set regex pattern indicating logged-out state |
| Tool | Parameters | Description |
|---|---|---|
GetUsersList | contextId | List all users for a context |
CreateUser | contextId, name | Create a new user |
RemoveUser | contextId, userId | Remove a user |
SetAuthenticationCredentials | contextId, userId, authCredentialsConfigParams | Set user credentials (username/password) |
SetUserEnabled | contextId, userId, enabled | Enable or disable a user |
| Tool | Parameters | Description |
|---|---|---|
SetForcedUser | contextId, userId | Set the forced user for a context |
SetForcedUserModeEnabled | enabled | Enable or disable forced user mode globally |
GetForcedUserStatus | contextId | Get forced user mode status and current forced user |
| Tool | Parameters | Description |
|---|---|---|
StartAjaxSpider | url, inScope, contextName, subtreeOnly | Start the Ajax Spider for JavaScript-heavy apps |
StartAjaxSpiderAsUser | contextName, userId, url, subtreeOnly | Start the Ajax Spider as a specific user |
GetAjaxSpiderStatus | — | Get Ajax Spider status (running/stopped) |
GetAjaxSpiderResults | — | Get Ajax Spider results summary |
StopAjaxSpider | — | Stop the Ajax Spider |
DockerComposeUp to start ZAPhttp://127.0.0.1:8090)StartSpider to crawl the application, then GetSpiderStatus to monitor progressGetPassiveScanStatus to wait for passive scan completionStartActiveScan on key pages, then GetActiveScanStatus to monitor progressGetAlertsSummary and GetAlerts to retrieve vulnerability findingsGetHtmlReport or GetJsonReport to generate a scan reportDockerComposeDown when doneNote: ZAP settings (contexts, authentication, scan policies) are persisted in the
zap-homeDocker volume. You can stop and restart the container without losing configuration.
This repository includes an intentionally vulnerable web application for trying out ZAP scanning. The app contains common vulnerabilities (XSS, SQL Injection, CSRF, Open Redirect) so ZAP can detect real findings.
# Start ZAP and the vulnerable target app
docker compose -f tests/docker/docker-compose.test.yml up -d --build
docker compose -f tests/docker/docker-compose.test.yml ps
Then configure your MCP client to connect to this ZAP instance:
{
"mcpServers": { "zap": { "command": "zap-mcp", "env": { "ZAP_BASE_URL": "http://localhost:8090", "ZAP_API_KEY": "test-api-key-for-ci" } } } }
The vulnerable app is accessible at
http://targetfrom within the Docker network (used by ZAP), and athttp://localhost:8080from your host machine.
Prompt to agent:
Scan http://target for vulnerabilities. Run a spider crawl, wait for the passive scan to finish, then show me the alert summary and generate an HTML report.
Expected tool flow:
GetVersion → Verify ZAP connectivity
StartSpider → url: "http://target" GetSpiderStatus → Poll until 100% GetPassiveScanStatus → Poll until 0 records remaining GetAlertsSummary → baseUrl: "http://target" GetAlerts → baseUrl: "http://target" GetHtmlReport → Generate report
ZAP will discover pages like /search, /login, /users, /about, /contact, and the passive scan will report issues such as missing security headers and CSRF vulnerabilities.
The /admin page requires login (username: admin, password: password). An authenticated scan lets ZAP access protected pages.
Prompt to agent:
Set up an authenticated scan for http://target. The login form is at /login with fields "username" and "password" (credentials: admin / password). The logged-in indicator is "Welcome, admin". After configuring authentication, spider the site as the authenticated user and run an active scan.
Expected tool flow:
CreateContext → contextName: "target-auth"
IncludeInContext → regex: "http://target.*" SetAuthenticationMethod → contextId, authMethodName: "formBasedAuthentication", authMethodConfigParams: "loginUrl=http://target/login&loginRequestData=username%3D%7B%25username%25%7D%26password%3D%7B%25password%25%7D" SetLoggedInIndicator → loggedInIndicatorRegex: "Welcome, admin" CreateUser → contextId, name: "admin" SetAuthenticationCredentials → contextId, userId, authCredentialsConfigParams: "username=admin&password=password" SetUserEnabled → contextId, userId, enabled: true SetForcedUser → contextId, userId SetForcedUserModeEnabled → enabled: true StartSpider → url: "http://target", contextName: "target-auth" GetSpiderStatus → Poll until 100% GetPassiveScanStatus → Poll until 0 records remaining StartActiveScan → url: "http://target" GetActiveScanStatus → Poll until 100% GetAlertsSummary → baseUrl: "http://target" GetAlerts → baseUrl: "http://target" SetForcedUserModeEnabled → enabled: false
With authentication configured, ZAP can access /admin and test for vulnerabilities behind the login.
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요