npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hoststack.dev/mcp

v0.15.0

Published

MCP server for HostStack — manage projects, services, deploys, databases, domains, DNS records, env vars, and cron jobs from any MCP-capable agent.

Downloads

387

Readme

@hoststack.dev/mcp

Model Context Protocol (MCP) server for HostStack — let Claude, Cursor, and any other MCP-capable agent deploy services, manage databases, rotate env vars, and read logs on your HostStack team.

Two ways to run it:

  • Hosted (recommended) — point your client at https://hoststack.dev/api/mcp with a Bearer API key. No local install.
  • Local stdionpx -y @hoststack.dev/mcp runs the same server in-process and talks JSON-RPC over stdin/stdout.

Quick start

1. Get an API key

Open the dashboard at https://hoststack.dev/dashboard/settings/api-keys and create a key with full_access permission. The key is bound to a single team — every tool call operates on that team automatically; agents never need to pass teamId.

2. Wire it into your client

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
	"mcpServers": {
		"hoststack": {
			"command": "npx",
			"args": ["-y", "@hoststack.dev/mcp"],
			"env": {
				"HOSTSTACK_API_KEY": "hs_live_..."
			}
		}
	}
}

Cursor

Add to ~/.cursor/mcp.json (or via Settings → MCP):

{
	"hoststack": {
		"command": "npx",
		"args": ["-y", "@hoststack.dev/mcp"],
		"env": {
			"HOSTSTACK_API_KEY": "hs_live_..."
		}
	}
}

Claude Code

claude mcp add hoststack --env HOSTSTACK_API_KEY=hs_live_... -- npx -y @hoststack.dev/mcp

Or — equivalently — use the hosted HTTP transport so credentials live only in your Claude Code config, not on disk:

claude mcp add --transport http hoststack https://hoststack.dev/api/mcp --header "Authorization: Bearer hs_live_..."

Any other client (hosted)

POST https://hoststack.dev/api/mcp
Authorization: Bearer hs_live_...
Content-Type: application/json

The endpoint speaks the streamable-HTTP MCP transport. Stateless — every request is independent; no session bookkeeping.

3. Generate config snippets

The CLI knows how to print config for the three big clients so you don't have to memorise the shape:

npx @hoststack.dev/mcp --print-config claude-desktop
npx @hoststack.dev/mcp --print-config cursor
npx @hoststack.dev/mcp --print-config claude-code

If HOSTSTACK_API_KEY is set in your shell, it gets baked into the snippet; otherwise you'll see a hs_live_your_api_key_here placeholder you can search-and-replace.

Tool inventory

60 tools, grouped by resource:

| Category | Read | Write | | ----------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | projects | list_projects, get_project | create_project, update_project | | services | list_services, get_service, get_service_metrics, get_service_metrics_history, get_service_logs, get_service_logs_bulk | create_service, create_dev_environment, update_service, update_service_config, suspend_service, resume_service | | deploys | list_deploys, get_deploy, get_deploy_logs, diagnose_deploy | trigger_deploy, cancel_deploy | | environments | list_environments | create_environment, delete_environment, promote_deploy | | databases | list_databases, get_database, get_database_cluster, query_database | update_database, upgrade_database_to_ha (use the dashboard for create/delete/credentials) | | volumes | list_volumes | create_volume, update_volume, delete_volume | | domains | list_domains | add_domain, verify_domain, remove_domain | | dns | list_dns_zones, list_dns_records, get_dns_record | create_dns_record, update_dns_record, delete_dns_record | | env-vars | list_env_vars | set_env_var, delete_env_var, bulk_set_env_vars | | cron | list_cron_executions, get_cron_execution | — | | notifications | list_notification_channels | create_notification_channel, update_notification_channel, delete_notification_channel, test_notification_channel | | alerts | list_alerts | — | | activity-log | list_activity_log | — | | meta | get_me | — |

A few design notes worth knowing as a caller:

  • set_env_var / delete_env_var are key-based. You don't need an env-var ID; the MCP looks up the existing var by key first, then patches or deletes by ID under the hood.
  • list_env_vars masks secret values. Anything stored with is_secret: true comes back as ••••••. The masking happens server-side, so you can't accidentally leak a secret to the agent's context window.
  • get_service_logs and get_deploy_logs are snapshots. Streaming logs over MCP isn't supported — re-call the tool to get newer entries. Use the dashboard's /dashboard/services/:id/logs for live tails.
  • No delete_project or delete_service. Destructive cascades are dashboard-only — too risky for an agent to call. Creating is supported via create_service / create_dev_environment.
  • Telemetry, hosted only. When you use https://hoststack.dev/api/mcp, we record one row per tool call (tool name, duration, ok/error, SHA-derived hash of input args — never the args themselves) for the analytics page and on-call alerts. Retained 30 days. The local stdio install records nothing.

Environment variables

| Var | Required | Default | Notes | | --------------------- | -------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | HOSTSTACK_API_KEY | yes | — | Bearer token. hs_live_… for prod, hs_test_… for the test team. | | HOSTSTACK_BASE_URL | no | https://hoststack.dev | Override for self-hosted or staging. | | HOSTSTACK_MCP_TRACE | no | unset | Set to 1 to emit one NDJSON line per tool call to stderr. Useful for 2> mcp-trace.log debugging without colliding with the JSON-RPC body on stdout. |

License

MIT — see LICENSE.