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

@alsotari/bio

v0.2.0

Published

Ask Claude about Mousa Soutari. An MCP server exposing Mousa's profile — availability, ventures, offerings, flagship work — as callable tools.

Readme

@alsotari/bio

An MCP server that lets your AI assistant answer questions about Mousa Soutari — using the same data that powers alsotari.online.

npx @alsotari/bio

This is a Model Context Protocol server. It exposes seven tools that let Claude Desktop, Claude Code, Cursor, Gemini CLI, OpenAI Codex, or any other MCP client answer questions about availability, ventures, flagship work, offerings, and draft an intro email. Profile data is pulled live from alsotari.online/about.json; Mosaic Bridge metrics come straight from the npm registry and GitHub API. Answers stay fresh without a republish.


Why a bio as an MCP server?

Because Mousa ships MCP tooling for a living — it's on-brand for the résumé to be one. And it's more useful than a PDF:

You: Is Mousa open to a 3-month CTO-level engagement starting in June?

Claude: Let me check. [calls get_availability]
        Yes — he's currently open to senior contracts, technical advisory,
        CTO-level engagements, and full-time roles. Response time is
        typically under one business day.

You: Draft the intro email.

Claude: [calls compose_intro_email]
        I've drafted it — click to send: mailto:[email protected]?…

Tools

| Tool | What it returns | | --- | --- | | get_availability | Current status, what he's open to, response time | | get_contact | Email (preferred), GitHub, LinkedIn, website | | get_flagship | Mosaic Bridge — Unity Editor MCP plugin details, implemented research, supported clients | | get_mosaic_bridge_stats | Live metrics — GitHub stars / forks / open issues / last push; latest npm version and release count for @mosaicxr-ai/create-bridge and @mosaicxr-ai/mcp-server. 5-minute cache. | | get_ventures | MosaicXR, HiveForce, Al-Jazri — the three other active projects | | get_offerings | The five concrete engagements he takes on | | compose_intro_email | Drafts an intro email and returns a ready-to-send mailto: URL. Takes from_name, problem, optional constraint, outcome. |


Install

Claude Desktop

Edit the config file and restart Claude Desktop.

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "alsotari-bio": {
      "command": "npx",
      "args": ["-y", "@alsotari/bio"]
    }
  }
}

Claude Code

claude mcp add alsotari-bio -- npx -y @alsotari/bio

Cursor

Cursor → Settings → MCP → Add new MCP server:

{
  "alsotari-bio": {
    "command": "npx",
    "args": ["-y", "@alsotari/bio"]
  }
}

Gemini CLI

gemini mcp add alsotari-bio npx -y @alsotari/bio

Any other MCP client

The server speaks stdio transport. Launch it as a subprocess with:

npx -y @alsotari/bio

…and wire its stdin/stdout to your client's JSON-RPC layer.


Configuration

Environment variables (all optional):

| Variable | Default | Purpose | | --- | --- | --- | | ALSOTARI_ABOUT_URL | https://alsotari.online/about.json | Override the profile data source (dev / fork) | | MOSAIC_BRIDGE_REPO | MosaicXR-AI/mosaic-bridge | GitHub owner/name queried by get_mosaic_bridge_stats | | MOSAIC_BRIDGE_NPM_PACKAGES | @mosaicxr-ai/create-bridge,@mosaicxr-ai/mcp-server | Comma-separated npm packages to include in stats | | GITHUB_TOKEN | unset | Optional — unauthenticated GitHub API allows 60 req/hour; set a token to get 5000/hour |

Both the profile data and the Mosaic Bridge stats are cached in-process for 5 minutes — independently, so each refreshes on its own cadence.


Versioning

The server doesn't bundle any profile data — it live-fetches about.json on each tool call (5-minute in-memory cache). That means most content updates ship without touching this package:

  • No republish needed — changing availability, ventures, offerings, research list, or any other about.json field. Edit the site, redeploy it, done.
  • Republish needed — adding a new tool, changing tool input schemas, renaming tools, altering the output shape of an existing tool, or fixing a server bug.

Bump version in package.json (patch for bug fixes, minor for new tools, major for breaking output-shape changes), then:

npm run build
npm publish --access public

Develop

git clone https://github.com/MousaSoutari/alsotari-bio.git
cd alsotari-bio
npm install
npm run build
npm start   # launches the built server on stdio

Smoke-test with a hand-written JSON-RPC flow:

(
  printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0.0.1"}}}'
  printf '%s\n' '{"jsonrpc":"2.0","method":"notifications/initialized"}'
  printf '%s\n' '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
  printf '%s\n' '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_availability","arguments":{}}}'
  sleep 1
) | node dist/index.js

License

Apache 2.0 — same as Mosaic Bridge.