@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.
Maintainers
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/bioThis 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/bioCursor
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/bioAny 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.jsonfield. 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 publicDevelop
git clone https://github.com/MousaSoutari/alsotari-bio.git
cd alsotari-bio
npm install
npm run build
npm start # launches the built server on stdioSmoke-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.jsLicense
Apache 2.0 — same as Mosaic Bridge.
