{"_id":"@coderseranpm/mcp","_rev":"5-d23b67d89a583530e65f1be6ab90443e","name":"@coderseranpm/mcp","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@coderseranpm/mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","codersera","invoice","invoice-generator","freelance","claude","codex","cursor"],"license":"MIT","_id":"@coderseranpm/mcp@0.1.0","maintainers":[{"name":"codersera_org","email":"shubh@codersera.com"}],"bin":{"codersera-mcp":"dist/index.js"},"dist":{"shasum":"4de5250dd51f086feed6100d49a8bf734fde9a64","tarball":"https://registry.npmjs.org/@coderseranpm/mcp/-/mcp-0.1.0.tgz","fileCount":3,"integrity":"sha512-kzBY4hANgaYoKFK3Sp475U+BLu1zT/VWRwK+CI5ii+37ScAywDMwoORjdeP+Z1iRVqV3IPMwc0ofDfVgIHbZGg==","signatures":[{"sig":"MEYCIQD4okTmi9Hrl9vmPAMk1GaOJYdCCoPVj7KNXXRn07HUMwIhAJ9/6e+AWUpV2PyUJKdYnwdTnfVL02TfouQGjALlW83f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30816},"type":"module","engines":{"node":">=18"},"gitHead":"b77a607dfe20879e52683346435e5c18cbd643d9","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"codersera_org","email":"shubh@codersera.com"},"_npmVersion":"11.16.0","description":"Model Context Protocol (MCP) server for Codersera tools, starting with local invoice generation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1782746513289_0.28965010986063744","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@coderseranpm/mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","codersera","invoice","invoice-generator","freelance","claude","codex","cursor"],"license":"MIT","_id":"@coderseranpm/mcp@0.1.1","maintainers":[{"name":"codersera_org","email":"shubh@codersera.com"}],"bin":{"codersera-mcp":"dist/index.js"},"dist":{"shasum":"221db1f203109e127dd9121dd73f99b40f01c4de","tarball":"https://registry.npmjs.org/@coderseranpm/mcp/-/mcp-0.1.1.tgz","fileCount":3,"integrity":"sha512-pjIM3sefl/CPABH1QW9DnxWe+ygygQ/wE0sB9r2lOENNjBcB2GZj5D0ypaGwYDhwJhV4z9oYp2VeRWizgfTkyQ==","signatures":[{"sig":"MEUCIAZgDK0tDBnJy5PJIaPoaJbn4HGn6AMAWLD4NdCNyOQUAiEAxepMjB2TJGG61jb84KKJc8v5lVcJGgBQrSI+VnsQkaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32240},"type":"module","engines":{"node":">=18"},"gitHead":"b77a607dfe20879e52683346435e5c18cbd643d9","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"codersera_org","email":"shubh@codersera.com"},"_npmVersion":"11.16.0","description":"Model Context Protocol (MCP) server for Codersera tools, starting with local invoice generation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1782763265546_0.47059747534357466","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@coderseranpm/mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","codersera","invoice","invoice-generator","freelance","claude","codex","cursor"],"license":"MIT","_id":"@coderseranpm/mcp@0.2.0","maintainers":[{"name":"codersera_org","email":"shubh@codersera.com"}],"bin":{"codersera-mcp":"dist/index.js"},"dist":{"shasum":"eb589d6d25cdd3be60e0f6bde6ec06752ac8c0d6","tarball":"https://registry.npmjs.org/@coderseranpm/mcp/-/mcp-0.2.0.tgz","fileCount":3,"integrity":"sha512-q77QqPaR2HXI9TVlQrli4+VMt6iXcWQ1sGs2hykgabkbsv4dAYvFi2Xz2LxicjcGiZ/Ju9Lg7AjtPDnQJi7CnA==","signatures":[{"sig":"MEQCIDzWFKtqnyMmSctgfHENZB9d0WfBQtk0Ve2FfkuNZqUYAiB7oByVmkcDAVBNABbalTR1fsoU2PZKvZh3NRJZRQM4IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54299},"type":"module","engines":{"node":">=18"},"gitHead":"b3b3ab1f4f3110a267f4eaa209d270af3b830801","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"codersera_org","email":"shubh@codersera.com"},"_npmVersion":"11.16.0","description":"Model Context Protocol (MCP) server for Codersera tools, starting with local invoice generation.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.8","puppeteer-core":"^23.0.0","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1782816259911_0.9657679856454093","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@coderseranpm/mcp","version":"0.2.1","keywords":["mcp","model-context-protocol","codersera","invoice","invoice-generator","domain-rating","dr-checker","seo","ahrefs","freelance","claude","codex","cursor"],"license":"MIT","_id":"@coderseranpm/mcp@0.2.1","maintainers":[{"name":"codersera_org","email":"shubh@codersera.com"}],"bin":{"codersera-mcp":"dist/index.js"},"dist":{"shasum":"1b6fdd8ec7d02d21642c725687b69ef27792ec7b","tarball":"https://registry.npmjs.org/@coderseranpm/mcp/-/mcp-0.2.1.tgz","fileCount":3,"integrity":"sha512-svEjxn1+PBnyPpM9Bk1cydl3+h2M7vmdprxMNnV46QfL6/vq0TdHBqTfivD9f+zkdJ6Nhb4tN/WyFi9/i//TJg==","signatures":[{"sig":"MEUCIQCsNdT+n8B7BzgqYmSgY8GznSC7sGE0CJKSLWOPTqeXWwIgWPtDHYr9WeqD4vAKBuHbz6K7FtwiDW+DY2LxsKrjlL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60095},"type":"module","engines":{"node":">=18"},"gitHead":"35b95d7ea6b10ec32fea703c54aa20df01b467d3","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"codersera_org","email":"shubh@codersera.com"},"_npmVersion":"11.16.0","description":"Model Context Protocol (MCP) server for Codersera tools: invoice generation and Domain Rating checks.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.8","puppeteer-core":"^23.0.0","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.1_1782917170000_0.8857852211112769","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@coderseranpm/mcp","version":"0.2.2","description":"Model Context Protocol (MCP) server for Codersera tools: invoices, Domain Rating, IP lookup, and browser notes.","license":"MIT","type":"module","publishConfig":{"access":"public"},"bin":{"codersera-mcp":"dist/index.js"},"engines":{"node":">=18"},"keywords":["mcp","model-context-protocol","codersera","invoice","invoice-generator","domain-rating","dr-checker","seo","ahrefs","ip-lookup","geoip","notes","note-taker","freelance","claude","codex","cursor"],"scripts":{"build":"tsc","prepublishOnly":"npm run build","start":"node dist/index.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","puppeteer-core":"^23.0.0","zod":"^3.23.8"},"devDependencies":{"typescript":"^5.5.0"},"gitHead":"35b95d7ea6b10ec32fea703c54aa20df01b467d3","_id":"@coderseranpm/mcp@0.2.2","_nodeVersion":"20.20.2","_npmVersion":"11.16.0","dist":{"integrity":"sha512-iYLUdsVjq3ceQaQ/bas0p6hpd5Bh9TAhy8hU1FpqbABn6oy9SPAH0N3EjgeNVZJ6aK1rrxMAwi6G2VKTBpx0PQ==","shasum":"a82e98f6f9aa74c3f697e76479f0c23e1857a607","tarball":"https://registry.npmjs.org/@coderseranpm/mcp/-/mcp-0.2.2.tgz","fileCount":3,"unpackedSize":72964,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpVZB0j6SXAUhJX16U4Z3ZFFe/MXA3f0XPluQB8ZOdiwIga6XdEzg/C3Vt9Qfk3n/KVHA7hgcyiFKhXPo799bh9AQ="}]},"_npmUser":{"name":"codersera_org","email":"shubh@codersera.com"},"directories":{},"maintainers":[{"name":"codersera_org","email":"shubh@codersera.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.2.2_1782917654885_0.37826724871756556"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-29T15:21:53.071Z","modified":"2026-07-01T14:54:15.156Z","0.1.0":"2026-06-29T15:21:53.429Z","0.1.1":"2026-06-29T20:01:05.708Z","0.2.0":"2026-06-30T10:44:20.077Z","0.2.1":"2026-07-01T14:46:10.113Z","0.2.2":"2026-07-01T14:54:15.017Z"},"license":"MIT","keywords":["mcp","model-context-protocol","codersera","invoice","invoice-generator","domain-rating","dr-checker","seo","ahrefs","ip-lookup","geoip","notes","note-taker","freelance","claude","codex","cursor"],"description":"Model Context Protocol (MCP) server for Codersera tools: invoices, Domain Rating, IP lookup, and browser notes.","maintainers":[{"name":"codersera_org","email":"shubh@codersera.com"}],"readme":"# @coderseranpm/mcp\n\nGenerate invoices, check Domain Rating, look up IP metadata, and manage browser\nnotes from Claude, Codex, Cursor, and any MCP-capable agent.\n\nThis is a local stdio [Model Context Protocol](https://modelcontextprotocol.io)\nserver for Codersera tools. It wraps the free Codersera invoice generator,\nDomain Rating checker, IP lookup, and Browser Notes Taker: create invoice JSON,\ncalculate totals, write printable HTML/PDF/JSON files on your machine, check\nAhrefs Domain Rating, inspect IP geolocation/ASN data, and create or manage\nsaved notes in your Codersera account.\n\nCodersera MCP requires a signed-in Codersera account and API key. Generate the\nkey from <https://codersera.com/tools/invoice-generator#mcp>, then pass it as\n`CODERSERA_MCP_API_KEY`. The MCP server runs locally. Invoice rendering stays\nlocal; online tools call Codersera only for the specific domains, IPs, or notes\nyou ask the agent to work with.\n\nThe tools register and stay discoverable even before the key is verified. The\nkey is checked lazily the first time you call a value-producing tool, so a\nmissing or invalid key returns a clear, actionable error from that tool instead\nof silently hiding every tool from your agent. The read-only info tools\n(`list_invoice_templates`, `list_supported_currencies`, `get_invoice_schema`)\nwork without a key.\n\n## Setup\n\n### Claude Code\n\n```bash\nCODERSERA_MCP_API_KEY='cw_live_...' claude mcp add --scope user codersera -- npx -y @coderseranpm/mcp\n```\n\n### Codex\n\n```bash\nCODERSERA_MCP_API_KEY='cw_live_...' codex mcp add codersera -- npx -y @coderseranpm/mcp\n```\n\nOr add it to `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.codersera]\ncommand = \"npx\"\nargs = [\"-y\", \"@coderseranpm/mcp\"]\nenv = { CODERSERA_MCP_API_KEY = \"cw_live_...\" }\n```\n\n### Claude Desktop / Cursor / Windsurf\n\nEdit the matching user-level MCP config:\n\n```json\n{\n    \"mcpServers\": {\n        \"codersera\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@coderseranpm/mcp\"],\n            \"env\": {\n                \"CODERSERA_MCP_API_KEY\": \"cw_live_...\"\n            }\n        }\n    }\n}\n```\n\n### Local tarball fallback\n\nIf npm is temporarily unavailable, the same package is also mirrored at:\n\n```bash\nCODERSERA_MCP_API_KEY='cw_live_...' npx -y --package https://codersera.com/mcp/codersera-mcp-0.2.2.tgz codersera-mcp\n```\n\n## Tools\n\n| Tool                        | What it does                                                                                                                              |\n| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |\n| `create_invoice`            | Build a normalized invoice from supplier, buyer, lines, tax, discount, and payment fields. Returns JSON, totals, and a formatted summary. |\n| `calculate_invoice_totals`  | Recompute line totals, tax breakdown, discounts, withholding, shipping, and amount due for an invoice payload.                            |\n| `write_invoice_html`        | Write a standalone printable `.html` invoice to local disk. Open it in a browser and Save as PDF.                                         |\n| `write_invoice_pdf`         | Render a real `.pdf` using a local Chrome/Chromium/Edge/Brave. Falls back to writing `.html` (no error) if no browser is found.           |\n| `write_invoice_json`        | Write the normalized invoice JSON to local disk for accounting or CRM import.                                                             |\n| `check_domain_rating`       | Check Ahrefs Domain Rating (DR 0-100) for one domain or URL.                                                                              |\n| `bulk_check_domain_rating`  | Check Ahrefs Domain Rating for up to 10 domains or URLs in one request.                                                                   |\n| `lookup_ip`                 | Look up geolocation, ASN, ISP, timezone, and country metadata for one IPv4/IPv6 address or the caller IP.                                 |\n| `bulk_lookup_ips`           | Look up IP metadata for up to 10 IPv4/IPv6 addresses in one request.                                                                      |\n| `create_browser_note`       | Create a note in Codersera Browser Notes Taker from plain text or sanitized HTML.                                                         |\n| `list_browser_notes`        | List recent Codersera Browser Notes, optionally filtered by title/excerpt search.                                                         |\n| `read_browser_note`         | Read one note by id, including sanitized HTML and plain text.                                                                             |\n| `update_browser_note`       | Update a note title and/or body. Plain text is converted to simple browser-editor HTML when HTML is omitted.                              |\n| `delete_browser_note`       | Delete one note by id.                                                                                                                    |\n| `share_browser_note`        | Publish or unpublish a note and return its Codersera public share URL when published.                                                     |\n| `list_invoice_templates`    | List template ids accepted by the web invoice generator, each with a short description. The MCP renderer uses a clean printable layout.   |\n| `list_supported_currencies` | List common supported invoice currencies and default locales.                                                                             |\n| `get_invoice_schema`        | Return a compact field guide for agent prompting.                                                                                         |\n\n### Domain Rating tools\n\n`check_domain_rating` accepts a single `target` domain or URL:\n\n```json\n{ \"target\": \"https://codersera.com/tools/domain-rating-checker\" }\n```\n\n`bulk_check_domain_rating` accepts `targets`, up to 10 domains or URLs:\n\n```json\n{ \"targets\": [\"codersera.com\", \"ahrefs.com\", \"stripe.com\"] }\n```\n\nBoth tools normalize URLs to bare domains, skip duplicates in bulk mode, and\nreturn `{ domain, dr }` rows with `dr` on Ahrefs' 0-100 scale. The checks call\nCodersera's Domain Rating API, which proxies Ahrefs' public Domain Rating\nendpoint.\n\n### IP Lookup tools\n\n`lookup_ip` accepts an optional `ip`. If omitted, Codersera looks up the caller\nIP seen by its API:\n\n```json\n{ \"ip\": \"8.8.8.8\" }\n```\n\n`bulk_lookup_ips` accepts `ips`, up to 10 addresses:\n\n```json\n{ \"ips\": [\"8.8.8.8\", \"1.1.1.1\"] }\n```\n\nResponses include country, region, city, latitude/longitude, timezone, ASN,\norganization, ISP, hostname when available, and source metadata.\n\n### Browser Notes tools\n\nUse `create_browser_note` to save a note to Codersera Browser Notes Taker:\n\n```json\n{\n    \"title\": \"Research notes\",\n    \"content_text\": \"Key finding\\n\\nFollow-up item\"\n}\n```\n\nUse `list_browser_notes` to find note ids, then `read_browser_note`,\n`update_browser_note`, `delete_browser_note`, or `share_browser_note`.\nPublishing a note returns a public `https://codersera.com/n/...` share URL.\n\n### `write_invoice_pdf`\n\nSame arguments as `write_invoice_html` (plus `outputPath` / `overwrite`), but it\nproduces a true PDF. It uses `puppeteer-core` driving a browser you already have\ninstalled — it never downloads Chromium. The server probes, in order:\n\n1. `PUPPETEER_EXECUTABLE_PATH`, `CHROME_PATH`, `CHROME_BIN`\n2. Common Chrome / Chromium / Microsoft Edge / Brave install paths for your OS\n\nIf a browser is found it returns `{ path, invoiceNumber, amountDue, renderer: \"chrome\" }`.\nIf none is found (or rendering fails), it **gracefully degrades**: it writes the\nHTML to the same path with a `.html` extension and returns a non-error result\nwith `pdf: false` and a message telling you to open it and Save as PDF, or set\n`PUPPETEER_EXECUTABLE_PATH` and retry. The tool never crashes.\n\n### Invoice options\n\nThese apply to every invoice-producing tool:\n\n- **`showTax`** — the Tax column auto-hides when no line carries a positive tax\n  rate (no `Tax` header, no per-row tax cell, no `Tax $0.00` row). Pass\n  `showTax: true` or `false` to force it on or off.\n- **`bankAccounts`** — an array (max 6) of structured remittance details:\n  `{ holder, bank, accountNumber, routingNumber, iban, bic, swift, currency, notes }`.\n  Each is rendered as a labeled \"Remittance\" card showing only the fields you\n  filled in. The freeform `paymentInstructions` string still renders too.\n- **`omitDueDate`** — set `true` to drop the due date entirely (no `Due` line).\n- **Structured address** — `supplier.address` and `buyer.address` accept either a\n  plain string or `{ line1, line2, city, region, postalCode, country }`, which is\n  joined into a clean multi-line address.\n- **`logoUrl`** — accepts an `http(s)` URL, a `data:` URI, **or a local file path**\n  (png/jpg/jpeg/gif/svg/webp). Local files are read and inlined; an unreadable\n  logo is skipped silently rather than failing the invoice. The logo is rendered\n  at the top-left of the invoice.\n\n## Example prompt\n\n> Using Codersera MCP, generate an invoice for Acme Inc. from Jane Doe LLC.\n> Invoice number INV-2026-0042, USD, Net 14. Line: \"React performance audit\",\n> 12 hours at 95/hour, VAT 0. Write the printable HTML to ~/Desktop.\n\n> Using Codersera MCP, check Domain Rating for codersera.com, ahrefs.com, and\n> stripe.com, then sort the results from highest DR to lowest.\n\n> Using Codersera MCP, look up 8.8.8.8 and 1.1.1.1, then summarize the country,\n> ASN, organization, and timezone for each.\n\n> Using Codersera MCP, save these meeting notes to Browser Notes Taker with the\n> title \"Launch checklist\", then publish the note and give me the share URL.\n\n## Privacy and file writes\n\nThe server verifies `CODERSERA_MCP_API_KEY` lazily — the first time you call a\nvalue-producing tool, it calls Codersera once and caches the result. After that,\ninvoice tools run locally. Domain Rating tools call Codersera's DR API for the\ndomains you provide; Codersera then proxies Ahrefs' public Domain Rating\nendpoint. IP Lookup tools call Codersera's IP Lookup API for the supplied\naddresses. Browser Notes tools read and write notes in the Codersera account\nthat owns the API key.\n\nIt writes files only when you call `write_invoice_html`, `write_invoice_pdf`, or\n`write_invoice_json`. If `outputPath` is omitted, it writes to your OS temp\ndirectory. Existing files are not overwritten unless `overwrite: true` is\npassed. `write_invoice_pdf` renders through a browser already installed on your\nmachine and never downloads one.\n","readmeFilename":"README.md"}