diff --git a/.claude/skills/aeon/SKILL.md b/.claude/skills/aeon/SKILL.md index ad3b90c004a..18f49b6fd03 100644 --- a/.claude/skills/aeon/SKILL.md +++ b/.claude/skills/aeon/SKILL.md @@ -54,6 +54,8 @@ Goal: one real notification in their phone, fast. Do not configure a schedule fi > **Fastest start, no terminal: Aeon Connect.** If the user has no terminal, no Node or `gh`, or just wants the quickest path, send them to https://www.aeon.fun/connect. In the browser they sign in with GitHub, create their aeon (a public fork or a private copy), install the Aeon Connect GitHub App on that one repo, connect a model, and pick skills. Nothing else to do: the agent then runs on their own GitHub Actions. Use the terminal path below only if they want a local clone. +> **Want to drive it from a chat app instead?** Once an instance exists, the user can add https://www.aeon.fun/connect/mcp as a connector in ChatGPT, Claude or Cursor (Claude Code: `claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp`). It signs in with GitHub and can run skills, read outputs and memory, and edit strategy and soul. Details: `references/mcp.md`. + 1. **Run `./aeon init`.** Ask public or private first (public: Actions minutes are free; private: `--private`, minutes bill against the account quota, 2,000/mo on Free). Then, from a clone of the template: ```bash diff --git a/.claude/skills/aeon/references/mcp.md b/.claude/skills/aeon/references/mcp.md index 7a07f202083..b5190ad319f 100644 --- a/.claude/skills/aeon/references/mcp.md +++ b/.claude/skills/aeon/references/mcp.md @@ -2,14 +2,15 @@ ## First: which direction? -Two unrelated things share the name. Get this wrong and nothing works. +Three things share the name. Get this wrong and nothing works. | | | |---|---| | **`.mcp.json`** - *external MCP servers, called BY Aeon skills* | Wired via the dashboard MCP panel or `./aeon mcp add`. This is what you want when a skill needs a tool. | | **`bin/add-mcp`** - *Aeon itself AS an MCP server* | Builds `apps/mcp-server` and registers it with Claude Code / Desktop, so all 85 skills appear as `aeon-*` tools **in your local Claude**. Nothing to do with a skill calling out. | +| **`www.aeon.fun/connect/mcp`** - *your Aeon as a HOSTED MCP server* | Aeon Connect's remote server: sign in with GitHub, pick your agent repo, then run skills (on your GitHub Actions), read runs, output and memory, and toggle skills **from ChatGPT, Claude or any MCP client**. Nothing to install, no keys in chat. Claude Code: `claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp`. | -The rest of this doc is the first one. For the second: `bin/add-mcp`, `--desktop` for a Claude Desktop snippet, `--uninstall` to remove, `claude mcp list` to verify. +The rest of this doc is the first one. For the second: `bin/add-mcp`, `--desktop` for a Claude Desktop snippet, `--uninstall` to remove, `claude mcp list` to verify. For the third: add the URL as a custom connector (ChatGPT, Claude) or with the command above, then sign in when asked. ## Adding a server diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 7d17a8b9584..c3fd129ee0b 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -134,7 +134,7 @@ catalog/ ← registries the dashboard reads (generated + hand-au bin/ ← operator + maintainer CLI (run from repo root, e.g. bin/add-skill) onboard ← validate the fork's setup (secrets, workflows, channels) add-skill ← import skills from GitHub repos (with security scanning) - add-mcp ← register Aeon as an MCP server for Claude Desktop/Code + add-mcp ← register Aeon as a local MCP server for Claude Desktop/Code install-skill-pack ← install a curated community skill pack export-skill ← package skills for standalone distribution new-from-template ← scaffold a skill from a template (--category sets its pack) @@ -153,7 +153,7 @@ skills/ ← each skill is a SKILL.md prompt file (`category:` = apps/ ← standalone sub-projects, each with its own package.json dashboard/ ← local web UI (Next.js + json-render feed) cli/ ← headless CLI (`./aeon `) — the dashboard's features as commands - mcp-server/ ← MCP server — exposes skills as Claude tools + mcp-server/ ← local stdio MCP server (the hosted one lives in Aeon Connect) webhook/ ← Telegram instant-mode Cloudflare Worker (~1s delivery) memory/ ← durable memory the agent reads/writes across runs MEMORY.md ← goals, active topics, pointers diff --git a/.github/README.md b/.github/README.md index 6e179545746..d2779f7962b 100644 --- a/.github/README.md +++ b/.github/README.md @@ -20,6 +20,8 @@ > **▶ Start in your browser:** **[www.aeon.fun/connect](https://www.aeon.fun/connect)** - sign in with GitHub, connect a model, pick skills. No clone, no terminal. > > **🤖 Using a coding agent?** Point it here: **read https://www.aeon.fun/skills/aeon.md and follow the instructions to set up your Aeon agent.** +> +> **Already have an agent?** Drive it from ChatGPT, Claude or Cursor: add **https://www.aeon.fun/connect/mcp** as a connector and sign in with GitHub.
@@ -46,6 +48,8 @@ **Using a coding agent?** Paste this into Claude Code, Codex, Hermes or OpenClaw: `read https://www.aeon.fun/skills/aeon.md and follow the instructions to set up your aeon agent`. +**Drive it from ChatGPT, Claude or Cursor.** Add `https://www.aeon.fun/connect/mcp` as a connector (custom MCP server). Sign in with GitHub, pick which agent it can reach, then list and run skills, read their output and memory, or edit your strategy and soul from the chat. Nothing to install, no keys. Claude Code: `claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp`. Runs still happen on your own GitHub Actions. +
Prefer the terminal? @@ -189,6 +193,8 @@ Read-only skills can't touch the repo, irreversible actions fail closed, an opti Muse, Grok, and Hermes Cloud run around the clock too, but on their own servers, and they train on your chats unless you opt out ([Muse](https://www.engadget.com/2256577/how-to-get-started-with-meta-s-new-ai-agent-muse/), [Grok](https://x.ai/legal/faq), [Hermes Cloud](https://portal.nousresearch.com/privacy)). Aeon runs on your own GitHub Actions: memory is files in your repo, keys are your repo's encrypted secrets, there is no Aeon server in the loop, and nothing is sent anywhere unless you point tracing at your own collector. Keep it fully private with a **private** instance ([two-repo strategy](../docs/CONFIGURATION.md#two-repo-strategy)) and your own model key - your model provider's terms still apply. +The hosted MCP server is opt-in: when you connect it, Aeon Connect reads what you ask for (runs, outputs, memory) from your repo and hands it to your chat client. + --- ## Configure @@ -235,7 +241,7 @@ The deep reference lives in [`docs/`](../docs) - jump in:

CLI - the whole dashboard as scriptable ./aeon commands  - MCP server - every skill as an aeon MCP tool in Claude  + MCP server - run Aeon from ChatGPT, Claude or Cursor (hosted at www.aeon.fun/connect/mcp) or every skill as a local MCP tool  Webhooks - ~1s Telegram instant mode via a self-hosted worker  ADK - build products on top of Aeon over the GitHub API  Ecosystem - products and agents built on Aeon diff --git a/.github/SECURITY.md b/.github/SECURITY.md index 445859f9914..b267904edcf 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -92,6 +92,14 @@ injection — see the `## Security` section of [`CLAUDE.md`](../CLAUDE.md). through the Aeon Connect GitHub App, installed on that one repo only. Keys you connect are encrypted straight into the repo's Actions secrets; Aeon Connect does not store them. +- The hosted MCP server at [www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp) + uses OAuth 2.1 with GitHub sign-in. A client reaches only the repos you + approve, through the same Aeon Connect GitHub App. Its write tools + (`run_skill`, `update_skill`, `update_strategy`, `update_soul`, + `install_pack`) act on that repo. Secret values are never readable or + writable over it. To cut access at once, uninstall the Aeon Connect GitHub + App or remove the repo from it; otherwise unused access expires after 30 + days. - A public instance's `memory/`, `output/`, and run logs are public. To keep them private, make the instance a **private repo** (a copy of the template: GitHub does not allow private forks of a public repo). diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c865d32b1b..0afd414c60d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,17 @@ from or pin to; the template keeps serving the latest `main` to new forks. ### Added +- **Hosted MCP server: drive your agent from ChatGPT, Claude or Cursor.** Aeon Connect now serves + a remote MCP server at [www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp) (Streamable + HTTP, OAuth 2.1 with dynamic client registration and PKCE, GitHub sign-in). The consent screen + picks which agent repo a client can reach, and `switch_instance` moves between your Aeon repos + after a fresh GitHub check. About 20 tools list and run skills (runs dispatch on the repo's own + GitHub Actions), read runs, output and memory, edit skills, strategy and soul, show setup status + (key names only) and install packs. Secret values are never readable or writable over it. Claude + Code: `claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp`. The README, setup + skill, `apps/mcp-server` README, security policy, `llms.txt` and docs now point to it, and + `bin/add-mcp` warns before its `claude mcp remove aeon` would delete a hosted `aeon` entry. + (aeon-connect #66, #68) - **Aeon Connect: start an agent from the browser.** [www.aeon.fun/connect](https://www.aeon.fun/connect) is the hosted, multi-tenant version of the dashboard (aaronjmars/aeon-connect). Sign in with GitHub, **Create your aeon**: the repo is created first (public = a real fork of aeonfun/aeon that can pull diff --git a/apps/cli/src/commands/mcp.ts b/apps/cli/src/commands/mcp.ts index fada3f2f04b..1d9d5f16a23 100644 --- a/apps/cli/src/commands/mcp.ts +++ b/apps/cli/src/commands/mcp.ts @@ -15,7 +15,9 @@ const USAGE = `aeon mcp — MCP servers wired into skill runs (.mcp.json) Options: --dry-run Preview the change to .mcp.json - --json Machine-readable output` + --json Machine-readable output + +Driving Aeon itself from ChatGPT, Claude or Cursor? Hosted: https://www.aeon.fun/connect/mcp - local: bin/add-mcp` async function readServers(): Promise { let content: string diff --git a/apps/dashboard/components/McpPanel.tsx b/apps/dashboard/components/McpPanel.tsx index e0c5db06246..e3448ce6a02 100644 --- a/apps/dashboard/components/McpPanel.tsx +++ b/apps/dashboard/components/McpPanel.tsx @@ -182,6 +182,10 @@ export function McpPanel({ servers, loading, saving, secrets, busy, onSave, onSe Servers your skills can call during a run - GitHub, a database, a paid API.

+

+ Want the other direction? Drive this agent from ChatGPT, Claude or Cursor with the hosted MCP server:{' '} + www.aeon.fun/connect/mcp +

diff --git a/apps/mcp-server/README.md b/apps/mcp-server/README.md index 9ca3434f86b..1f9ea849429 100644 --- a/apps/mcp-server/README.md +++ b/apps/mcp-server/README.md @@ -1,6 +1,33 @@ -# Aeon MCP Server +# Aeon MCP Server (local) -Expose every Aeon skill as a [Model Context Protocol](https://modelcontextprotocol.io) tool, so you can run any skill straight from **Claude Desktop** or **Claude Code** — no GitHub Actions, no cron, no separate UI. Each skill shows up as an `aeon-` tool; ask Claude to use it and it runs the exact same `SKILL.md` prompt the scheduled runner uses. +Expose every Aeon skill as a [Model Context Protocol](https://modelcontextprotocol.io) tool, so you can run any skill straight from **Claude Desktop** or **Claude Code** on your own machine. Each skill shows up as an `aeon-` tool; ask Claude to use it and it runs the exact same `SKILL.md` prompt the scheduled runner uses. Using ChatGPT or Cursor, or want nothing to install? Use the hosted server at [www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp) instead (see below). + +## Hosted or local? + +There are two Aeon MCP servers. Pick the one that fits: + +| | Hosted (Aeon Connect) | Local (this app) | +|---|---|---| +| **Add it with** | `https://www.aeon.fun/connect/mcp` as a connector | `bin/add-mcp` | +| **Transport** | Streamable HTTP, OAuth 2.1 with GitHub sign-in | stdio | +| **Works in** | ChatGPT, Claude, Claude Code, Cursor, any remote MCP client | Claude Code, Claude Desktop | +| **Runs skills on** | your repo's own GitHub Actions | your machine, through `harness-adapter/run-harness` | +| **Tools** | about 20: list and run skills, read runs, output and memory, edit skills, strategy and soul, check setup, install packs, switch between your Aeon repos | one `aeon-` tool per skill | +| **Needs** | an Aeon repo with the Aeon Connect GitHub App installed | a clone of your repo, Node 20+, a harness CLI signed in, and the keys your skills use | + +**Hosted how-to.** Add `https://www.aeon.fun/connect/mcp` as a custom connector (custom MCP server) in ChatGPT, Claude or Cursor. In Claude Code: + +```bash +claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp +``` + +Sign in with GitHub when asked, then pick which agent repo the client can reach on the consent screen. Secret values are never readable or writable over it; `setup_status` only shows key names. + +**Using both?** `bin/add-mcp` registers the local server under the name `aeon` and first runs `claude mcp remove aeon`, which would delete a hosted entry with the same name (the script warns you when it sees one). To keep both, add the hosted one under another name: + +```bash +claude mcp add --transport http aeon-cloud https://www.aeon.fun/connect/mcp +``` ## What it is diff --git a/bin/add-mcp b/bin/add-mcp index 361e8779d70..168fc824803 100755 --- a/bin/add-mcp +++ b/bin/add-mcp @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# add-mcp — Install the Aeon MCP server so Claude Code and Claude Desktop +# add-mcp - Install the Aeon MCP server so Claude Code and Claude Desktop # can invoke any Aeon skill directly from the Claude interface. # # Usage: @@ -10,7 +10,10 @@ # bin/add-mcp --help Show this help # # After running, every Aeon skill appears as an 'aeon-' tool in Claude. -# Skills run locally via `claude -p -` exactly as they do on GitHub Actions. +# Skills run locally through harness-adapter/run-harness, as on GitHub Actions. +# +# No install wanted, or using ChatGPT or Cursor? Use the hosted server instead: +# claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp set -euo pipefail @@ -18,7 +21,7 @@ DIR="$(cd "$(dirname "$0")/.." && pwd)" MCP_DIR="$DIR/apps/mcp-server" usage() { - sed -n '3,12p' "$0" | sed 's/^# //' + sed -n '2,16p' "$0" | sed -E 's/^# ?//' exit 0 } @@ -27,6 +30,15 @@ info() { printf '\033[0;34m%s\033[0m\n' "$*"; } ok() { printf '\033[0;32m✓ %s\033[0m\n' "$*"; } warn() { printf '\033[0;33m⚠ %s\033[0m\n' "$*"; } +HOSTED_URL="https://www.aeon.fun/connect/mcp" + +# True when the 'aeon' entry in Claude Code is the hosted server, not this one. +aeon_entry_is_hosted() { + local entry + entry="$(claude mcp get aeon 2>/dev/null)" || return 1 + [[ "$entry" == *"aeon.fun/connect/mcp"* ]] +} + BUILD_ONLY=false SHOW_DESKTOP=false UNINSTALL=false @@ -47,6 +59,11 @@ if [[ "$UNINSTALL" == "true" ]]; then if ! command -v claude &>/dev/null; then err "'claude' CLI not found. Nothing to uninstall." fi + if aeon_entry_is_hosted; then + warn "The 'aeon' entry in Claude Code is the hosted server ($HOSTED_URL), not this local one. Leaving it in place." + warn "To remove it anyway, run: claude mcp remove aeon" + exit 0 + fi info "Removing Aeon MCP server from Claude Code..." if claude mcp remove aeon 2>/dev/null; then ok "Removed 'aeon' from Claude Code MCP servers" @@ -111,6 +128,11 @@ if ! command -v claude &>/dev/null; then warn "Then run: claude mcp add aeon node \"$SERVER_PATH\"" else info "Registering with Claude Code..." + if aeon_entry_is_hosted; then + warn "Your existing 'aeon' entry is the hosted server ($HOSTED_URL). Replacing it with the local one." + warn "To keep both, re-add the hosted one under another name:" + warn " claude mcp add --transport http aeon-cloud $HOSTED_URL" + fi # Remove existing entry to avoid duplicates, then re-add claude mcp remove aeon 2>/dev/null || true claude mcp add aeon node "$SERVER_PATH" @@ -131,6 +153,9 @@ echo "│ Example usage in Claude: │" echo "│ Use the aeon-digest tool for a digest on AI agents │" echo "│ Use aeon-token-movers with var=\"bitcoin\" │" echo "│ Run aeon-article with var=\"lens:AI agent frameworks\" │" +echo "│ │" +echo "│ No install, or ChatGPT / Cursor? Use the hosted server: │" +echo "│ www.aeon.fun/connect/mcp │" echo "└──────────────────────────────────────────────────────────┘" echo "" diff --git a/docs/ADK.md b/docs/ADK.md index 7ef5cea38c2..52657cedd12 100644 --- a/docs/ADK.md +++ b/docs/ADK.md @@ -343,7 +343,8 @@ Total infrastructure on your side: one GitHub App and a session store. No agent ### 5.4 Other entry points worth knowing -- **MCP server** ([`apps/mcp-server`](../apps/mcp-server/README.md)) - every skill as an `aeon-` tool in Claude Desktop/Code; the local, push-button complement to your hosted integration. +- **Hosted MCP server** ([www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp)) - Aeon Connect's remote MCP server (Streamable HTTP, OAuth 2.1 with GitHub sign-in): users drive their own instance from ChatGPT, Claude, Claude Code or Cursor, with runs on the instance's own GitHub Actions. Secret values are never readable or writable over it. +- **Local MCP server** ([`apps/mcp-server`](../apps/mcp-server/README.md)) - every skill as an `aeon-` tool in Claude Desktop/Code; the local, push-button complement to your hosted integration. - **`ai-build` label** - label any GitHub issue `ai-build` and the agent implements it and opens a PR; your app can create labeled issues to request work. - **Telegram instant mode** ([`apps/webhook`](../apps/webhook/README.md)) - ~1s command replies via a Cloudflare Worker, if your product fronts a chat surface. diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 992842e99ee..7dab31f6046 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -140,6 +140,8 @@ Turn it off per repo with the variable **`SKILL_DRYRUN=0`** (default on), so a f Let skills **call** MCP servers (GitHub, a database, a paid API, your own) while they run in GitHub Actions. Opt-in and safe - with no `.mcp.json` at the repo root, runs are byte-identical to before. +This is about skills calling *other* MCP servers. To drive Aeon itself from ChatGPT, Claude or Cursor, use the hosted server at [www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp) or the local one ([hosted or local?](../apps/mcp-server/README.md#hosted-or-local)). + ```bash cp docs/examples/mcp/.mcp.json.example .mcp.json # then edit, commit, push ``` diff --git a/docs/aeon-setup.md b/docs/aeon-setup.md index 9467b4ed731..eeaca792c0c 100644 --- a/docs/aeon-setup.md +++ b/docs/aeon-setup.md @@ -72,9 +72,10 @@ The skill is a standard `SKILL.md` (plus a `references/` folder). Any agent that ## How it relates to the dashboard & CLI -Four front doors, one engine - all of them read and write the same `aeon.yml` + repo secrets: +Five front doors, one engine - all of them work on the same repo, `aeon.yml` and secrets (the hosted MCP server never reads or writes secret values): - **Aeon Connect** ([www.aeon.fun/connect](https://www.aeon.fun/connect)) - the dashboard, hosted: sign in with GitHub, create your repo, connect a model, pick skills. Nothing to install; best for a first run. See [Quick start](../.github/README.md#quick-start). +- **Hosted MCP** ([www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp)) - drive an existing agent from ChatGPT, Claude, Claude Code or Cursor: add the URL as a connector, sign in with GitHub, then run skills, read output and memory, and edit strategy and soul from the chat. See [Hosted or local?](../apps/mcp-server/README.md#hosted-or-local). - **Local dashboard** (`./aeon` → `localhost:5555`) - the same click-driven UI, run from your clone. - **CLI** (`./aeon skills …`, `./aeon secrets …`) — scriptable, `--json`-friendly. See [Command line](../apps/cli/README.md). - **This skill** (`/aeon` in your agent) — conversational; you say what you want, it runs the CLI and confirms the result. diff --git a/docs/examples/README.md b/docs/examples/README.md index 673db601650..f467664862a 100644 --- a/docs/examples/README.md +++ b/docs/examples/README.md @@ -1,6 +1,6 @@ # Aeon integration examples -Aeon ships an [MCP server](../../apps/mcp-server/) so any Claude client can call its 85 skills. The scripts here are the shortest possible "first call works" demos - build the server, run `python `, get a real Aeon output back. +Aeon ships an [MCP server](../../apps/mcp-server/) so any Claude client can call its 85 skills. The scripts here are the shortest possible "first call works" demos - build the server, run `python `, get a real Aeon output back. Using ChatGPT or Cursor, or want nothing to install? The hosted server at [www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp) runs skills on your own GitHub Actions instead ([hosted or local?](../../apps/mcp-server/README.md#hosted-or-local)). | File | Stack | Skill called | What it shows | |------|-------|--------------|---------------| diff --git a/docs/mcp-oauth.md b/docs/mcp-oauth.md index c43a0b3ef5d..93c5d47621f 100644 --- a/docs/mcp-oauth.md +++ b/docs/mcp-oauth.md @@ -12,6 +12,8 @@ Actions run can't perform. This is the same problem the grok harness solves for X-account login — and the solution here mirrors it: capture once in the dashboard, store as repo secrets, refresh before every run. +This page is about MCP servers your skills call. Signing in to Aeon's own hosted MCP server ([www.aeon.fun/connect/mcp](https://www.aeon.fun/connect/mcp)) from ChatGPT, Claude or Cursor is a different flow, handled by Aeon Connect. + ## The flow 1. **Connect (dashboard).** In the MCP panel, an OAuth-flagged featured server shows diff --git a/llms.txt b/llms.txt index c75991d2771..6e5429e5574 100644 --- a/llms.txt +++ b/llms.txt @@ -1,6 +1,6 @@ # Aeon -> Aeon is an autonomous agent framework. It runs your own skills on a schedule in GitHub Actions, keeps state in git-committed memory, and dispatches every run through one harness adapter that works across nine coding-agent CLIs (Claude Code, Codex, Grok, Kimi, Pi, Vibe, fx, Cursor, Hermes). GLM Coding Plan is a Claude AI Gateway provider, not a harness. Skills are Markdown with a spec-form frontmatter; a least-privilege `requires:` -> dashboard vault contract wires secrets. Start it from the browser with Aeon Connect (https://www.aeon.fun/connect: sign in with GitHub, connect a model, pick skills), or clone the repo and run `./aeon init`; either way it runs itself on your own GitHub Actions. +> Aeon is an autonomous agent framework. It runs your own skills on a schedule in GitHub Actions, keeps state in git-committed memory, and dispatches every run through one harness adapter that works across nine coding-agent CLIs (Claude Code, Codex, Grok, Kimi, Pi, Vibe, fx, Cursor, Hermes). GLM Coding Plan is a Claude AI Gateway provider, not a harness. Skills are Markdown with a spec-form frontmatter; a least-privilege `requires:` -> dashboard vault contract wires secrets. Start it from the browser with Aeon Connect (https://www.aeon.fun/connect: sign in with GitHub, connect a model, pick skills), or clone the repo and run `./aeon init`; either way it runs itself on your own GitHub Actions. Once it exists, drive it from ChatGPT, Claude or Cursor through the hosted MCP server at https://www.aeon.fun/connect/mcp. Repo: https://github.com/aeonfun/aeon Site: https://www.aeon.fun @@ -15,6 +15,7 @@ Site: https://www.aeon.fun ## Setup and configuration - [Aeon Connect](https://www.aeon.fun/connect): The fastest start, in the browser. Sign in with GitHub, create your instance repo (a public fork or a private copy of aeonfun/aeon), install the Aeon Connect GitHub App on it, connect a model, pick skills. No clone or terminal. +- [Hosted MCP server](https://www.aeon.fun/connect/mcp): Drive your agent from ChatGPT, Claude, Claude Code or Cursor. Add the URL as a custom connector (Claude Code: `claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp`), sign in with GitHub and pick the agent repo. List and run skills (on the repo's own GitHub Actions), read runs, output and memory, edit skills, strategy and soul. Secret values are never readable or writable over it. - [docs/aeon-setup.md](https://raw.githubusercontent.com/aeonfun/aeon/main/docs/aeon-setup.md): The setup skill - get an instance running from scratch from a chat in your coding agent. - [docs/CONFIGURATION.md](https://raw.githubusercontent.com/aeonfun/aeon/main/docs/CONFIGURATION.md): Configuration and advanced reference. - [docs/CORE.md](https://raw.githubusercontent.com/aeonfun/aeon/main/docs/CORE.md): The Core - the ~15 load-bearing skills (self-evolution, self-healing, fleet) that make Aeon autonomous rather than just scheduled. @@ -31,6 +32,7 @@ Site: https://www.aeon.fun - [docs/harnesses.md](https://raw.githubusercontent.com/aeonfun/aeon/main/docs/harnesses.md): Advanced harness behavior across the nine supported coding-agent CLIs. - [harness-adapter/README.md](https://raw.githubusercontent.com/aeonfun/aeon/main/harness-adapter/README.md): The single dispatch path that translates one tool grammar to every harness. +- [apps/mcp-server/README.md](https://raw.githubusercontent.com/aeonfun/aeon/main/apps/mcp-server/README.md): The local stdio MCP server (`bin/add-mcp`): every skill as an `aeon-` tool in Claude Code or Claude Desktop, run on your machine. Compares it with the hosted server. - [docs/mcp-oauth.md](https://raw.githubusercontent.com/aeonfun/aeon/main/docs/mcp-oauth.md): Durable dashboard OAuth for OAuth-gated MCP servers. - [docs/telegram-commands.md](https://raw.githubusercontent.com/aeonfun/aeon/main/docs/telegram-commands.md): The inbound Telegram command surface. diff --git a/plugin/skills/aeon/SKILL.md b/plugin/skills/aeon/SKILL.md index d3c27304869..d9c68c7d1b4 100644 --- a/plugin/skills/aeon/SKILL.md +++ b/plugin/skills/aeon/SKILL.md @@ -54,6 +54,8 @@ Goal: one real notification in their phone, fast. Do not configure a schedule fi > **Fastest start, no terminal: Aeon Connect.** If the user has no terminal, no Node or `gh`, or just wants the quickest path, send them to https://www.aeon.fun/connect. In the browser they sign in with GitHub, create their aeon (a public fork or a private copy), install the Aeon Connect GitHub App on that one repo, connect a model, and pick skills. Nothing else to do: the agent then runs on their own GitHub Actions. Use the terminal path below only if they want a local clone. +> **Want to drive it from a chat app instead?** Once an instance exists, the user can add https://www.aeon.fun/connect/mcp as a connector in ChatGPT, Claude or Cursor (Claude Code: `claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp`). It signs in with GitHub and can run skills, read outputs and memory, and edit strategy and soul. Details: `references/mcp.md`. + 1. **Run `./aeon init`.** Ask public or private first (public: Actions minutes are free; private: `--private`, minutes bill against the account quota, 2,000/mo on Free). Then, from a clone of the template: ```bash diff --git a/plugin/skills/aeon/references/mcp.md b/plugin/skills/aeon/references/mcp.md index 7a07f202083..b5190ad319f 100644 --- a/plugin/skills/aeon/references/mcp.md +++ b/plugin/skills/aeon/references/mcp.md @@ -2,14 +2,15 @@ ## First: which direction? -Two unrelated things share the name. Get this wrong and nothing works. +Three things share the name. Get this wrong and nothing works. | | | |---|---| | **`.mcp.json`** - *external MCP servers, called BY Aeon skills* | Wired via the dashboard MCP panel or `./aeon mcp add`. This is what you want when a skill needs a tool. | | **`bin/add-mcp`** - *Aeon itself AS an MCP server* | Builds `apps/mcp-server` and registers it with Claude Code / Desktop, so all 85 skills appear as `aeon-*` tools **in your local Claude**. Nothing to do with a skill calling out. | +| **`www.aeon.fun/connect/mcp`** - *your Aeon as a HOSTED MCP server* | Aeon Connect's remote server: sign in with GitHub, pick your agent repo, then run skills (on your GitHub Actions), read runs, output and memory, and toggle skills **from ChatGPT, Claude or any MCP client**. Nothing to install, no keys in chat. Claude Code: `claude mcp add --transport http aeon https://www.aeon.fun/connect/mcp`. | -The rest of this doc is the first one. For the second: `bin/add-mcp`, `--desktop` for a Claude Desktop snippet, `--uninstall` to remove, `claude mcp list` to verify. +The rest of this doc is the first one. For the second: `bin/add-mcp`, `--desktop` for a Claude Desktop snippet, `--uninstall` to remove, `claude mcp list` to verify. For the third: add the URL as a custom connector (ChatGPT, Claude) or with the command above, then sign in when asked. ## Adding a server