{"_id":"@appsolutionkft/atlas-mcp","_rev":"5-08a80bf9fa47cf692b1f4cac814f5e5c","name":"@appsolutionkft/atlas-mcp","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@appsolutionkft/atlas-mcp","version":"0.1.0","license":"UNLICENSED","_id":"@appsolutionkft/atlas-mcp@0.1.0","maintainers":[{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"}],"homepage":"https://github.com/AppSolutionKft/Atlas-MCP#readme","bugs":{"url":"https://github.com/AppSolutionKft/Atlas-MCP/issues"},"bin":{"atlas-mcp":"dist/server.js"},"dist":{"shasum":"03f4a8e3482338e09783d9090470075f5beef6bc","tarball":"https://registry.npmjs.org/@appsolutionkft/atlas-mcp/-/atlas-mcp-0.1.0.tgz","fileCount":34,"integrity":"sha512-GT6sHuTeIQHBrQV1sgw7i5mNjTzAevJxZaFA+yZ8dQOpLoT2Dkg84xt7w8VfCnPwpShyElTwrnlbYCdiKWC5ww==","signatures":[{"sig":"MEQCIC0YVjmSefOZKN/YUmBbonSV1aw9Y5jOK9NKrhNRmQwbAiA3HxUfucJDxYB2BGPtVJYUsVX+/08FwUcwfX6womOEhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111549},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"2ce5edb31b6dcaa753f5916beba264bac2256883","scripts":{"test":"node --test \"test/**/*.test.ts\"","build":"tsc -p tsconfig.build.json","smoke":"node scripts/mcp-smoke.mjs","start":"node dist/server.js","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"},"repository":{"url":"git+https://github.com/AppSolutionKft/Atlas-MCP.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server that turns local git history into Atlas work-log drafts","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas-mcp_0.1.0_1787905261914_0.7779333141600644","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@appsolutionkft/atlas-mcp","version":"0.1.1","license":"UNLICENSED","_id":"@appsolutionkft/atlas-mcp@0.1.1","maintainers":[{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"}],"homepage":"https://github.com/AppSolutionKft/Atlas-MCP#readme","bugs":{"url":"https://github.com/AppSolutionKft/Atlas-MCP/issues"},"bin":{"atlas-mcp":"dist/server.js"},"dist":{"shasum":"5c7acffdc53840ee80eadcca8f7084ffd8a73b2e","tarball":"https://registry.npmjs.org/@appsolutionkft/atlas-mcp/-/atlas-mcp-0.1.1.tgz","fileCount":34,"integrity":"sha512-lHKL+x2y9xuQeLNFC5kMOgTU+/pLU5WbKkZK603hsv9zJCoLNJb8X/FfPE58jBf0vUhdgwIRIs85h0jYtXY9VA==","signatures":[{"sig":"MEQCIGTtmehy3P9kQGz21IA21k8qX1ZdYbv+OgVX0+THtKPNAiAJneWHFyfblXSKmp6334+reG0MJ57isl2o3Uj7cn3tRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110986},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"944e646dd4725aa5f425af9c57faf1770e218bb6","scripts":{"test":"node --test \"test/**/*.test.ts\"","build":"tsc -p tsconfig.build.json","smoke":"node scripts/mcp-smoke.mjs","start":"node dist/server.js","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"},"repository":{"url":"git+https://github.com/AppSolutionKft/Atlas-MCP.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server that turns local git history into Atlas work-log drafts","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas-mcp_0.1.1_1787906703993_0.6573621577729589","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@appsolutionkft/atlas-mcp","version":"0.1.2","license":"UNLICENSED","_id":"@appsolutionkft/atlas-mcp@0.1.2","maintainers":[{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"}],"homepage":"https://github.com/AppSolutionKft/Atlas-MCP#readme","bugs":{"url":"https://github.com/AppSolutionKft/Atlas-MCP/issues"},"bin":{"atlas-mcp":"dist/server.js"},"dist":{"shasum":"9e4de49b9e5e0dca7b8ea4d7eb1737dadb8334c8","tarball":"https://registry.npmjs.org/@appsolutionkft/atlas-mcp/-/atlas-mcp-0.1.2.tgz","fileCount":34,"integrity":"sha512-8JKLfwOSPt3FqFn+j0U7+6HZb3DQr1NI6nzyWraCFv3zIlDyeW3QPzlimWN/SwBIefuQtJPB5F38X57SlzWTbg==","signatures":[{"sig":"MEUCIQDf5xoyJlS+RlprWJfHJ4OGlyqUs6I9q2cEbQoueqyh8AIgZXIdnIqmKOoeHLdTRlHA+vVPm/rXAMJT35C5Way9CX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110989},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"0659514dcddac9918b1f6c3b6c815103f55897de","scripts":{"test":"node --test \"test/**/*.test.ts\"","build":"tsc -p tsconfig.build.json","smoke":"node scripts/mcp-smoke.mjs","start":"node dist/server.js","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"},"repository":{"url":"git+https://github.com/AppSolutionKft/Atlas-MCP.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server that turns local git history into Atlas work-log drafts","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas-mcp_0.1.2_1787910082728_0.14992601258226546","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@appsolutionkft/atlas-mcp","version":"0.1.3","license":"UNLICENSED","_id":"@appsolutionkft/atlas-mcp@0.1.3","maintainers":[{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"}],"homepage":"https://github.com/AppSolutionKft/Atlas-MCP#readme","bugs":{"url":"https://github.com/AppSolutionKft/Atlas-MCP/issues"},"bin":{"atlas-mcp":"dist/server.js"},"dist":{"shasum":"d9cbc60c02f647cf5173f6b47f93e984f7af2732","tarball":"https://registry.npmjs.org/@appsolutionkft/atlas-mcp/-/atlas-mcp-0.1.3.tgz","fileCount":34,"integrity":"sha512-asFuyMaSHUwimt5+wDd45mPq43ca120F1sXFnnaRazX18FZt4HdjLS+aR08IdJcZbD/H1U7mKAePW+wjPb2oZA==","signatures":[{"sig":"MEQCIHBGZyxIS++86gfoMhk2kMgOMWXMhFk0ULOBJDJNXjg8AiB2dfjgFw+4bXmzDZeTjuTt4HkKgbU+berpIEg3SbPwFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111572},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"fefe9d44e22e15a3be8c9d7616acbd0234315101","scripts":{"test":"node --test \"test/**/*.test.ts\"","build":"tsc -p tsconfig.build.json","smoke":"node scripts/mcp-smoke.mjs","start":"node dist/server.js","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"},"repository":{"url":"git+https://github.com/AppSolutionKft/Atlas-MCP.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server that turns local git history into Atlas work-log drafts","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/atlas-mcp_0.1.3_1787914803026_0.2560147001911308","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@appsolutionkft/atlas-mcp","version":"0.1.4","description":"MCP server that turns local git history into Atlas work-log drafts","license":"UNLICENSED","type":"module","bin":{"atlas-mcp":"dist/server.js"},"engines":{"node":">=20.0.0"},"repository":{"type":"git","url":"git+https://github.com/AppSolutionKft/Atlas-MCP.git"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json","test":"node --test \"test/**/*.test.ts\"","start":"node dist/server.js","smoke":"node scripts/mcp-smoke.mjs","prepublishOnly":"npm run typecheck && npm test && npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.30.0","dotenv":"^17.4.2","zod":"^4.4.3"},"devDependencies":{"@types/node":"^24.13.3","typescript":"^5.9.3"},"gitHead":"12f69a240cdc618806dd1a74c316be77a653f692","_id":"@appsolutionkft/atlas-mcp@0.1.4","bugs":{"url":"https://github.com/AppSolutionKft/Atlas-MCP/issues"},"homepage":"https://github.com/AppSolutionKft/Atlas-MCP#readme","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-9MiSng8Ut58HrUxzz34+pur97Op52qTdC8Hc2awH4UxxYslFJTg5ejP3WX1hSCTbvTyS68ti/94M5SJUEN6pGA==","shasum":"fa8eb27fe15e9b6664b8f349ddc01e3ff1d3acb1","tarball":"https://registry.npmjs.org/@appsolutionkft/atlas-mcp/-/atlas-mcp-0.1.4.tgz","fileCount":34,"unpackedSize":112842,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC3ZX3qd7sqXnhUm2rCZpqxtpbkkveRtAgKtjixJPib4QIgPOhznSkuPdHZ7rsnon3N5BwJi7iado3+rjDMoK+37wU="}]},"_npmUser":{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"},"directories":{},"maintainers":[{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/atlas-mcp_0.1.4_1787915345717_0.610477345529036"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-28T08:21:01.589Z","modified":"2026-08-28T11:09:06.010Z","0.1.0":"2026-08-28T08:21:02.076Z","0.1.1":"2026-08-28T08:45:04.144Z","0.1.2":"2026-08-28T09:41:22.874Z","0.1.3":"2026-08-28T11:00:03.184Z","0.1.4":"2026-08-28T11:09:05.857Z"},"bugs":{"url":"https://github.com/AppSolutionKft/Atlas-MCP/issues"},"license":"UNLICENSED","homepage":"https://github.com/AppSolutionKft/Atlas-MCP#readme","repository":{"type":"git","url":"git+https://github.com/AppSolutionKft/Atlas-MCP.git"},"description":"MCP server that turns local git history into Atlas work-log drafts","maintainers":[{"name":"appsolutionkft","email":"roland.kosa@appsolution.hu"}],"readme":"# atlas-mcp\n\nA local MCP server that turns the git history on your machine into work-log drafts in Atlas.\nThe analysis runs on the model in Claude Code — on **your subscription**, not on an API key.\n\n## What it does\n\nYou give it a period. The server collects your own commits from every local repository, the\nmodel assigns them to projects and job types, estimates how long each day's work took, and\nwrites the result to Atlas as drafts. You then review, correct and approve them there.\n\nYour commits never leave your machine. Only what the model puts in a draft is sent: the date,\nthe project, the job type, the time, the note, and the identifiers of the commits it used.\n\n## Requirements\n\n- **Node 20 or newer** — check with `node --version`. If you don't have it: [nodejs.org](https://nodejs.org)\n- **git**\n- An Atlas account and an API token (see below)\n\nNothing else. No repository to clone, nothing to build.\n\n## Installation\n\n### 1. Generate an API token\n\nIn Atlas: **Account → API tokens → Create token**. Give it a name (for example `work laptop`)\nand **copy it immediately** — the raw token is shown once and never again. If you lose it,\ngenerate a new one and revoke the old one.\n\n### 2. Register the server in Claude Code\n\nOne command. The same on Windows (PowerShell or Command Prompt) and on macOS:\n\n```bash\nclaude mcp add atlas --scope user \\\n  -e ATLAS_API_URL=https://atlas-backend.appsolution.hu \\\n  -e ATLAS_API_TOKEN=atlas_your_token_here \\\n  -e ATLAS_REPO_ROOTS=/path/to/your/projects \\\n  -- npx -y '@appsolutionkft/atlas-mcp'\n```\n\nTwo details the CLI is strict about:\n\n- **The server name comes before the `-e` flags.** `-e` takes a variable number of values, so\n  a name placed after them is swallowed as another variable and you get\n  `Invalid environment variable format: atlas`.\n- **In PowerShell, quote the package name.** `@` starts PowerShell's splatting operator, so\n  `'@appsolutionkft/atlas-mcp'` needs the quotes. PowerShell's line continuation is a backtick\n  (`` ` ``) rather than a backslash — or just write the whole command on one line.\n\nThe first run downloads and caches the package; after that it starts quickly.\n\n### 3. Check it\n\nStart a new Claude Code session and type `/mcp`. The `atlas` server should be **connected**,\nwith six tools and one `analyze_period` prompt.\n\n## Configuration\n\n| Key | Required | What goes in it |\n|---|---|---|\n| `ATLAS_API_URL` | yes | `https://atlas-backend.appsolution.hu` |\n| `ATLAS_API_TOKEN` | yes | The token generated in Atlas (`atlas_...`) |\n| `ATLAS_REPO_ROOTS` | yes | Where your projects live. Separate several roots with a **semicolon** |\n| `ATLAS_GIT_AUTHORS` | no | The email addresses you commit with, comma separated. Defaults to `git config user.email` |\n| `ATLAS_DAILY_MINUTES` | no | Working day in minutes, default 480 |\n| `ATLAS_MAX_RANGE_DAYS` | no | Upper bound on one analysed period, default 62 |\n\n**Quote the value when you have more than one root**, otherwise the shell reads the semicolon\nas a command separator:\n\n```bash\n--env \"ATLAS_REPO_ROOTS=/Users/me/Projects;/Users/me/Work\"\n```\n\n**On Windows, write the path with forward slashes** — `D:/Projects/work`, not\n`D:\\Projects\\work`. Backslashes do not reliably survive the trip from the shell into the\nclient's JSON config; when they are lost, `D:\\Projects\\work` becomes `D:Projectswork`, which\nWindows reads as a path relative to the current directory of drive D. The server says so if it\nsees one, but forward slashes avoid the problem entirely and work just as well.\n\nThe server looks for git repositories **at most two levels deep** under each root, skipping\n`node_modules`, `vendor`, `dist`, `build` and `.next`.\n\n### Where the token is stored\n\n`claude mcp add --scope user` writes the values **in plain text** into `~/.claude.json`\n(`C:\\Users\\<you>\\.claude.json` on Windows). It stays on your machine, but you should know it is\nnot encrypted. **Do not use `--scope project`** — that writes them into a `.mcp.json` file in\nthe repository, from where it easily ends up in version control.\n\nTo change a token: `claude mcp remove atlas --scope user`, then add it again.\nTo see what is registered: `claude mcp list`.\n\n## Usage\n\nIn Claude Code:\n\n```\n/mcp__atlas__analyze_period 2026-08-03 2026-08-07\n```\n\n`from` and `to` are **required**, separated by a space. A third, optional argument is the\nworking day in minutes: `/mcp__atlas__analyze_period 2026-08-03 2026-08-07 600`.\n\nOr just say it in words: \"analyse last week and prepare drafts\".\n\nThe model then:\n\n1. asks Atlas for the projects, job types and the days that already carry recorded tasks,\n2. reads through the commits of your local repositories for the period,\n3. estimates the time, grouped by day and project,\n4. asks you when it cannot match a repository to a project,\n5. writes the drafts, reads back what landed, and gives you a link to review them.\n   (The link only appears when the backend has a frontend URL configured; without it the\n   drafts are still there in Atlas.)\n\nRunning it again for the same period **replaces the pending drafts** rather than duplicating\nthem. Days you have already approved or rejected are left alone.\n\nWorth knowing: a save replaces **every** pending draft in the given period, not only the days\nthat particular call produced drafts for. If a pending draft from an earlier run falls on a day\nthis save does not cover, the response's `warnings` field says so — and that draft is deleted,\nbecause the whole period is replaced. If you don't want that, narrow `from`/`to`, or include\nthat day in the save.\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `atlas_get_context` | Projects, job types, time options, known repo-to-project pairings, days already taken |\n| `atlas_scan_commits` | The commits of your local repositories for the period, grouped by day |\n| `atlas_get_commit_detail` | The stat block and the beginning of the diff of one commit |\n| `atlas_save_drafts` | Writes the drafts to Atlas |\n| `atlas_list_drafts` | Reads back the drafts that were saved |\n| `atlas_save_repo_mappings` | Remembers a repository-to-project decision |\n\n## Updating\n\n`npx -y @appsolutionkft/atlas-mcp` uses the latest published version on every start, so there\nis nothing to do. To pin a version, put it in the registration:\n\n```bash\nclaude mcp add atlas --scope user -e ... -- npx -y '@appsolutionkft/atlas-mcp@0.1.4'\n```\n\n## Troubleshooting\n\n| Symptom | Cause and fix |\n|---|---|\n| `Missing configuration: ...` | A required value is missing. The message names which one and prints the full `claude mcp add` command. |\n| `Atlas rejected the API token` | The token expired or was revoked. Generate a new one and register the server again. |\n| `Could not reach Atlas at ...` | Wrong `ATLAS_API_URL`, or the server is unreachable. |\n| No repositories found | Wrong `ATLAS_REPO_ROOTS`, or the repositories sit deeper than two levels. The `warnings` list says explicitly when a root holds no repository at all. |\n| A repository is missing | It has no `origin` remote, or it normalises to the same name as one already seen. The `warnings` list always says what was left out and why. |\n| No commits in the result | Wrong `ATLAS_GIT_AUTHORS`. Check with `git log --author=<email>` |\n| `/mcp` does not show the `atlas` server | Run `claude mcp list`. If it is not there, the registration failed. If it is there but `failed`, the server's own error is in the Claude Code log. |\n\n## Development\n\nThis section is for working on the server itself. You do not need it to use it.\n\n```bash\ngit clone https://github.com/AppSolutionKft/Atlas-MCP.git\ncd Atlas-MCP\nnpm install\ncp .env.example .env    # then fill it in\n\nnpm test        # unit tests, run without building (needs Node 22.18+)\nnpm run typecheck\nnpm run build\nnpm run smoke   # checks the built server over the real stdio protocol\n```\n\nRun from a checkout, the `.env` file works alongside environment variables — anything already\nset in the environment wins over the file.\n","readmeFilename":"README.md"}