com.aim-journal/aim is an MCP server that workout journal Claude and ChatGPT write to: log workouts, get a program, see your progress. Its tool list has not been published yet over http, requires no API key, and scores 56/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"com-aim-journal-aim-persistmcp": {
"args": [
"-y",
"echo"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Workout journal Claude and ChatGPT write to: log workouts, get a program, see your progress.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked echo against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in ai-ml / health
A cross-platform desktop application for managing AI Agents and MCP Servers. 一款用于管理AI智能体与MCP服务器的跨平台桌面应用程序。
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
An open-source AI agent that brings the power of Gemini directly into your terminal.
🛡️ BLA (Blind LLM Agents) — Adversarial defense shield that protects binaries, Electron apps, JS bundles, Python, and WebAssembly against AI reverse-engineering agents like REA. Poison -> Exhaust -> Hallucinate.
MCP Security Weekly
Get CVE alerts and security updates for com.aim-journal/aim and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A workout journal that Claude and ChatGPT write to. Tell your assistant what you trained and it saves the exercises, sets, reps and weights. Ask it for a program and it builds one from your goal, schedule and equipment, checked by AIm before it is kept. The journal opens in the browser on any phone, in English, Spanish, French, Portuguese or Russian. Live at aim-journal.com.
Add it to your assistant
https://aim-journal.com/mcp (streamable HTTP).An AIm window asks for your email and a code it sends you. If you do not have a journal yet, AIm creates one there. Press Allow, then try: Make me a workout program in AIm for 3 days a week.
PT: diário de treino em que o Claude e o ChatGPT registram por você. Adicione pelo diretório do Claude ou do ChatGPT. ES: diario de entrenamiento en el que Claude y ChatGPT anotan por usted. Añádalo desde el directorio de Claude o de ChatGPT.
There are two ways in, on the same host, and both resolve to the same user_id:
https://<app>/mcp OAuth 2.1 — add as a connector, approve in the browser
https://<app>/{token} mobile web app / installable PWA
https://<app>/{token}/mcp the original connector address, still supported
https://<app>/{token}/api/* read only JSON the UI consumes
OAuth is what a connector uses now. The server is an OAuth 2.1 resource server: an
unauthenticated call gets a 401 carrying RFC 9728 protected-resource metadata, the client
discovers the authorization server from it, registers itself dynamically, and the user approves on
a consent screen this app serves. Supabase Auth is the authorization server, so no authorization
codes or access tokens are stored here; the access token's sub is mapped to an account through
users.supabase_user_id. Nothing secret is pasted by hand.
The URL token predates it and still works, which is why every link already in someone's inbox
kept working when OAuth landed. A token resolver middleware maps the leading path segment to a user
and scopes every query by user_id; the OAuth path sets the same context variable from a verified
token instead. Two doors, one scoping rule.
20 tools over stateless streamable HTTP (FastMCP):
log_session, update_session, update_set, delete_session, import_document
(paste an export from another tracker or a photo of a notebook page).get_sessions, get_session, get_stats (volume, progression, estimated 1RM via
Epley), get_program, get_goals, get_body_metrics.search_exercise_pool (a curated global pool with illustrations),
list_exercises, upsert_exercise.get_coaching_context is the important one. It returns data only: this user's
goal, experience, equipment, injuries (with the movement patterns that load them), recent
working weights, goal-matched planning ranges and the intake state, for the task at hand (next
workout, new program, weekly review), so the assistant plans from data rather than from
nothing. How the assistant uses it lives in the server's MCP instructions. review_program_draft, update_coach_profile, upsert_goal, log_coach_event,
log_body_metric keep that context current.api/index.py Vercel entrypoint (must stay at repo root, see below). Imports backend/src.
requirements.txt Vercel's Python build reads this (must also stay at repo root).
backend/ Python package, tests, scripts, DB migrations.
web/ Vite + React SPA (own package.json, own dev server) and
... [View full README on GitHub](https://github.com/persistmcp/aim#readme)