Send Email

Registre officiel Productivité

Send emails from natural language prompts.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http send-email 'https://next.hal9.ai/mcp/mcpbuild/send-email'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "send-email": {
            "type": "http",
            "url": "https://next.hal9.ai/mcp/mcpbuild/send-email"
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. mcp.build
  2. Why Hal9 agents?
  3. Agents
  4. Website (GitHub Pages)
  5. Contributing an agent (MCP)
  6. License

mcp.build

mcp.build is a community to build open source MCPs (Model Context Protocol servers) that adopted the Hal9 open source agent structure for its ease of use for deployment and interoperability.

Website: hal9ai.github.io/mcp.build (GitHub Pages from /docs)

This repo is structured so coding agents (Claude Code, Grok Build, Cursor, Codex, …) can contribute with minimal guesswork. Start at AGENTS.md and docs/llms.txt.

Why Hal9 agents?

Hal9 agents are intentionally simple: read from stdin with input(), write to stdout with print(). No framework lock-in. That shape maps cleanly to how MCPs expose tools to models, and makes agents easy to:

  • Develop — plain Python, any library
  • Deploy — hal9 deploy or GitHub Actions to hal9.com
  • Interoperate — same agent can run as a chatbot, an API, or an MCP tool

Agents

AgentDescriptionPath
send-emailSend emails with Resend from natural language prompts (Groq tool use)send-email/
run-pythonRun Python and install PyPI packages from natural language prompts (Groq tool use)run-python/
send-email

Example prompt:

send email to javier@hal9.ai with text hello!

The agent:

  1. Reads the prompt via input()
  2. Calls a Groq model with a send_email tool definition
  3. Maps the tool call to the Resend API
  4. Prints the result via print()

Environment variables

VariableRequiredDescription
GROQ_API_KEYYesAPI key from console.groq.com
RESEND_API_KEYYesAPI key from resend.com
RESEND_FROMNoSender address (default: mcp.build <onboarding@resend.dev>)
GROQ_MODELNoModel id (default: qwen/qwen3.6-27b)

Local run

cd send-email
pip install -r requirements.txt
export GROQ_API_KEY=...
export RESEND_API_KEY=...
echo "send email to you@example.com with text hello!" | python app.py

Deploy to Hal9

export HAL9_TOKEN=...   # from https://hal9.com/devs
hal9 deploy send-email --name send-email --access public \
  --title "Send Email" \
  --description "Send emails via Resend using natural language prompts"

On push to main, if files under send-email/ change, .github/workflows/send-email.yaml deploys a new version to Hal9 (same pattern as hal9ai/hal9 app deploy workflows). Set the HAL9_TOKEN repository secret in GitHub Actions.

Publish to the MCP Registry

The hosted send-email MCP is published as a remote-only server to the official MCP Registry under io.github.hal9ai/send-email. Metadata lives in send-email/server.json. On push to main (when send-email/ changes), .github/workflows/publish-send-email.yaml publishes it using GitHub OIDC — no extra GitHub secrets. The registry version is version in that file. If it is already published, the job skips. Bump version there to ship a new registry entry.

run-python

Example prompt:

install a package that calculates space orbits and compute the Hohmann transfer time from Earth to Mars and back, departing 2026-09-08

The agent:

  1. Reads the prompt via input()
  2. Calls a Groq model with install_packages and run_python tool definitions
  3. Installs requested PyPI packages into a sandbox directory
  4. Executes the generated Python in a subprocess and captures stdout/stderr
  5. Prints the result via print()

Environment variables

VariableRequiredDescription
GROQ_API_KEYYesAPI key from console.groq.com
GROQ_MODELNoModel id (default: qwen/qwen3.6-27b)
PYTHON_TIMEOUTNoSeconds allowed for each Python run (default: 60)
PIP_TIMEOUTNoSeconds allowed for pip install (default: 180)
PACKAGES_DIRNoDirectory for installed packages (default: a temp dir)

Local run

cd run-python
pip install -r requirements.txt
export GROQ_API_KEY=...
echo "print the first 10 primes" | python app.py

Deploy to Hal9

export HAL9_TOKEN=...   # from https://hal9.com/devs
hal9 deploy run-python --name run-python --access public \
  --title "Run Python" \
  --description "Run Python code from natural language prompts, with optional PyPI package install"

On push to main, if files under run-python/ change, .github/workflows/run-python.yaml deploys a new version to Hal9. Set the HAL9_DEVEL_TOKEN / HAL9_NEXT_TOKEN repository secrets in GitHub Actions.

Publish to the MCP Registry

The hosted run-python MCP is published as a remote-only server to the official MCP Registry under io.github.hal9ai/run-python. Metadata lives in run-python/server.json. On push to main (when run-python/ changes), .github/workflows/publish-run-python.yaml publishes it using GitHub OIDC. Bump version in server.json to ship a new registry entry.

Website (GitHub Pages)

Static site lives in docs/ — no build step.

PathRole
docs/index.htmlLanding page — what mcp.build is + list of available MCPs
docs/send-email/index.htmlDedicated page per MCP (usage, "Add to Claude", etc.) — template for new MCPs
docs/run-python/index.htmlrun-python MCP page
docs/css/styles.cssStyles
docs/agents.jsonMachine-readable agent catalog
docs/llms.txtShort instructions for LLMs / agents
AGENTS.mdFull rules for coding agents

Enable Pages: repo Settings → Pages → Build and deployment → Source: Deploy from a branch → Branch: main → Folder: /docs.

Contributing an agent (MCP)

This repo is designed so coding agents (Claude Code, Grok Build, Cursor, Codex, …) and humans can contribute a new MCP with minimal guesswork. Full checklist: AGENTS.md. Use send-email/ as the reference implementation and .github/workflows/send-email.yaml as the deploy pattern.

Expected layout
# minimum
my-tool/
  app.py               # input() → work → print()
  requirements.txt     # optional
  hal9.yaml            # optional welcome

# also update
.github/workflows/my-tool.yaml
docs/agents.json
docs/my-tool/index.html   # dedicated docs page for the MCP
README.md
Minimal agent
# my-tool/app.py
prompt = input()
# … call APIs, tools, models …
print(result)
Steps
  1. Create a new folder at the repo root, e.g. my-tool/. Keep the name short, kebab-case.
  2. Add app.py. Use input() / print() (or any stdin/stdout) so the agent stays Hal9- and MCP-friendly. Prefer no hal9 package unless you need session state.
  3. Add a requirements.txt if you need third-party packages.
  4. Optionally add hal9.yaml with a welcome: message.
  5. Add a GitHub Actions workflow, .github/workflows/my-tool.yaml, that deploys when that folder changes:

     on:
       push:
         branches: [main]
         paths:
           - my-tool/**
           - .github/workflows/my-tool.yaml
     # job: pip install hal9 → checkout → if my-tool/ changed:
     hal9 deploy my-tool --name my-tool --access public \
       --title "My Tool" --description "…"

    Secret: HAL9_TOKEN (agent runtime keys like GROQ_API_KEY are configured on the Hal9 side / local env — never committed).

  6. Register the agent in docs/agents.json (include an id, description, and docs_path pointing at its docs page) and mention it in the table above.
  7. Add a dedicated docs page at docs/<my-tool>/index.html so it shows up at https://hal9ai.github.io/mcp.build/my-tool/ (or https://mcp.build/my-tool/). Copy docs/send-email/index.html as a template — it covers what the MCP does, how agents use it, and how to add it to Claude and other MCP clients.
  8. Do not commit secrets; document required env vars in this README.

License

Contributions are welcome. Individual agents may carry their own licenses; see each folder for details.

Questions fréquentes

Qu'est-ce que Send Email ?

Send emails from natural language prompts.

Comment installer Send Email ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http send-email 'https://next.hal9.ai/mcp/mcpbuild/send-email'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Send Email ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

Send Email est-il open source ?

Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.

Qui maintient Send Email ?

Il est publié par hal9ai. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.