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

@wyrd-company/async-claude-agentsdk-mcp

v0.1.0

Published

Asynchronous MCP server for running Claude Agent SDK sessions

Readme

async-claude-agentsdk-mcp

An MCP server that lets coding agents run Claude Agent SDK sessions as asynchronous sub-agents.

claude and claude-continue return as soon as the background turn is scheduled. They never hold an MCP request open while Claude works. claude-status is an immediate point-in-time read of the in-memory session state.

Tools

claude

Starts a new Claude session and immediately returns a wrapper-owned session_id.

Inputs:

  • prompt (required): the task for Claude;
  • model (optional): a Claude model override;
  • effort (optional): low, medium, high, xhigh, or max;
  • cwd (optional): the working directory for the session.

Example result:

{
  "session_id": "0bd9d545-6016-4a5e-89b7-93f85a059f38",
  "status": "running",
  "turn": 1,
  "message": "Claude is running asynchronously. The MCP call is complete."
}

claude-continue

Starts another background turn in a completed session. It keeps the wrapper session_id and resumes the underlying Claude Agent SDK session.

Inputs:

  • session_id (required): the handle returned by claude;
  • prompt (required): the next prompt.

Continuation is rejected while the preceding turn is running or if it failed without producing a resumable Claude session.

claude-status

Returns the current state without waiting for a change. The response includes:

  • lifecycle status: running, completed, or failed;
  • the underlying Claude session ID once the SDK reports it;
  • the latest status summary and todo list reported by Claude;
  • caller-relevant problems reported by Claude;
  • the latest completed result or failure;
  • originating Codex session, thread, and turn IDs when Codex supplied them in MCP _meta.

Claude status reporting

Every Claude run receives an in-process MCP server with two tools:

  • report_status: replaces the current todo list and optionally records the current focus;
  • report_problem: appends a risk, blocker, or failure for the caller.

The tools only update session state and send best-effort MCP logging notifications. They do not block Claude waiting for the caller. Native TodoWrite calls are also captured when present in the Agent SDK message stream.

Permissions

The default permission mode is bypassPermissions. This intentionally gives Claude unrestricted tool execution in its environment and requires the Agent SDK's allowDangerouslySkipPermissions acknowledgement.

Set ASYNC_CLAUDE_MCP_PERMISSION_MODE to change it:

export ASYNC_CLAUDE_MCP_PERMISSION_MODE=default

Accepted values are default, acceptEdits, bypassPermissions, plan, dontAsk, and auto.

Run

Run the latest published version without installing it globally:

npx --yes @wyrd-company/async-claude-agentsdk-mcp

Example Codex configuration:

[mcp_servers.async_claude]
command = "npx"
args = ["--yes", "--@wyrd-company:registry=https://registry.npmjs.org", "@wyrd-company/async-claude-agentsdk-mcp"]

The server uses stdio and writes protocol messages only to stdout. Claude Agent SDK authentication and settings are inherited from the server process environment.

The explicit scope registry in the Codex configuration ensures npmjs is used even when the local npm configuration routes @wyrd-company packages to another registry.

For a global installation instead, run npm install --global @wyrd-company/async-claude-agentsdk-mcp and use async-claude-agentsdk-mcp as the command.

Session records are in memory. They survive multiple MCP tool calls and Claude turns while the stdio server remains running, but they do not survive a server restart.

Publishing

The package is published publicly to npmjs and GitHub Packages as @wyrd-company/async-claude-agentsdk-mcp. The Publish Package GitHub Actions workflow validates the release, publishes to npmjs with provenance using the repository's NPM_TOKEN Actions secret, and then publishes to GitHub Packages using its GITHUB_TOKEN.

Run the workflow manually, or push a bare SemVer tag that exactly matches the version in package.json, for example 0.1.0. Tags prefixed with v do not trigger publishing.

The GitHub Packages release inherits the public repository's visibility and permissions. Publishing npmjs first lets a failed GitHub Packages job be retried without attempting the immutable npmjs version again.

After the first release creates the npmjs package, configure npm trusted publishing for publish-package.yml and remove NODE_AUTH_TOKEN from the npmjs job to eliminate the long-lived publishing token.

Development

npm install
npm test
npm run build
npm start