Skip to content

Commit 7458bb9

Browse files
committed
README: absolute links and images, so they also work on PyPI
1 parent e93f551 commit 7458bb9

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

‎README.md‎

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ Contractor Foreman has no public API and no official MCP server. This repo gives
88

99
- **MCP server** for Claude Code, Claude Desktop, Cursor, Codex and any MCP client, over stdio or HTTP. [Setup](#mcp-server)
1010
- **REST API** on `http://127.0.0.1:8787/api/v1/contractor-foreman`, with OpenAPI docs at `/docs`. [Setup](#rest-api)
11-
- **Python**: `call("list_projects", search="Oak St")`, plus 10 ready scripts in [`examples/`](examples/).
11+
- **Python**: `call("list_projects", search="Oak St")`, plus 10 ready scripts in [`examples/`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/).
1212

1313
It is for technical people who want to run it themselves, **for noncommercial use only** ([license](#license)). If you want it running 24/7 on a server, kept working when Contractor Foreman changes its app, for a team or a business, use the [hosted version at cotlet.dev](https://cotlet.dev/integrations/contractor-foreman-api-mcp-server).
1414

1515
[![Contractor Foreman MCP server](https://img.shields.io/badge/Contractor%20Foreman%20MCP-89%20tools-6d4aef)](#all-89-tools)
1616
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-141318)](#requirements)
17-
[![License: PolyForm Noncommercial 1.0.0](https://img.shields.io/badge/license-PolyForm%20Noncommercial-141318)](LICENSE)
17+
[![License: PolyForm Noncommercial 1.0.0](https://img.shields.io/badge/license-PolyForm%20Noncommercial-141318)](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/LICENSE)
1818
[![MCP Badge](https://lobehub.com/badge/mcp/cotletdev-contractor-foreman-api-mcp-server)](https://lobehub.com/mcp/cotletdev-contractor-foreman-api-mcp-server)
1919

2020
```bash
@@ -76,7 +76,7 @@ contractor-foreman-mcp --version
7676

7777
With [uv](https://docs.astral.sh/uv/): `uv venv && uv pip install -e .`, then `uv run contractor-foreman-mcp ...`.
7878

79-
Setting it up with an AI agent (Claude Code, Codex, Cursor)? Open it in this folder and ask it to set up the repo: [`AGENTS.md`](AGENTS.md) tells it every step, and it asks you only for the steps in Chrome.
79+
Setting it up with an AI agent (Claude Code, Codex, Cursor)? Open it in this folder and ask it to set up the repo: [`AGENTS.md`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/AGENTS.md) tells it every step, and it asks you only for the steps in Chrome.
8080

8181
To update: `git pull && pip install -e .`. We copy every change of the hosted Contractor Foreman tools into this repo.
8282

@@ -167,7 +167,7 @@ claude mcp add contractor-foreman -- /path/to/contractor-foreman-api-mcp-server/
167167

168168
### Cursor
169169

170-
`~/.cursor/mcp.json`, the same block as Claude Desktop. A ready copy is in [`mcp.json`](mcp.json).
170+
`~/.cursor/mcp.json`, the same block as Claude Desktop. A ready copy is in [`mcp.json`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/mcp.json).
171171

172172
### Codex
173173

@@ -247,20 +247,20 @@ call("create_daily_log", project_id=projects[0]["project_id"], date="2026-10-20"
247247

248248
Or one tool from the shell: `contractor-foreman-mcp call list_invoices unpaid_only=true limit=10`, or with a JSON object.
249249

250-
Ready scripts in [`examples/`](examples/). Each prints JSON or a short report, takes `--out file.csv` or `--out file.json` where it makes sense, and `--help`:
250+
Ready scripts in [`examples/`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/). Each prints JSON or a short report, takes `--out file.csv` or `--out file.json` where it makes sense, and `--help`:
251251

252252
| Script | What it does |
253253
|---|---|
254-
| [`export_projects.py`](examples/export_projects.py) | Projects to CSV or JSON: customer, stage, dates, contract amount, costs, percent complete. `--status`, `--search`. |
255-
| [`add_daily_log.py`](examples/add_daily_log.py) | A daily log from a site note, crews and deliveries, after checking the day has no log yet. `--dry-run`. |
256-
| [`create_estimate.py`](examples/create_estimate.py) | An estimate from a scope list in CSV with markup. Prints the total, `--send` emails the PDF. |
257-
| [`create_change_order.py`](examples/create_change_order.py) | A change order or change order request from a client request; `--send` emails a saved one. |
258-
| [`reschedule_task.py`](examples/reschedule_task.py) | Moves a schedule task by N days and every task that depends on it. `--dry-run`. |
259-
| [`over_budget_projects.py`](examples/over_budget_projects.py) | Cost codes of open projects whose actual cost runs past the estimate, biggest overrun first. |
260-
| [`overdue_invoices.py`](examples/overdue_invoices.py) | Past-due invoices with a balance, oldest first, with days overdue and the total outstanding. |
261-
| [`record_payment.py`](examples/record_payment.py) | Records a check or transfer against an invoice found by its number, prints the new balance. |
262-
| [`crew_hours.py`](examples/crew_hours.py) | Hours and labor cost per project and employee from time cards, for the last N days or a date range. |
263-
| [`open_todos.py`](examples/open_todos.py) | Open to-dos due in the next N days or already late, by project. |
254+
| [`export_projects.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/export_projects.py) | Projects to CSV or JSON: customer, stage, dates, contract amount, costs, percent complete. `--status`, `--search`. |
255+
| [`add_daily_log.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/add_daily_log.py) | A daily log from a site note, crews and deliveries, after checking the day has no log yet. `--dry-run`. |
256+
| [`create_estimate.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/create_estimate.py) | An estimate from a scope list in CSV with markup. Prints the total, `--send` emails the PDF. |
257+
| [`create_change_order.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/create_change_order.py) | A change order or change order request from a client request; `--send` emails a saved one. |
258+
| [`reschedule_task.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/reschedule_task.py) | Moves a schedule task by N days and every task that depends on it. `--dry-run`. |
259+
| [`over_budget_projects.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/over_budget_projects.py) | Cost codes of open projects whose actual cost runs past the estimate, biggest overrun first. |
260+
| [`overdue_invoices.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/overdue_invoices.py) | Past-due invoices with a balance, oldest first, with days overdue and the total outstanding. |
261+
| [`record_payment.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/record_payment.py) | Records a check or transfer against an invoice found by its number, prints the new balance. |
262+
| [`crew_hours.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/crew_hours.py) | Hours and labor cost per project and employee from time cards, for the last N days or a date range. |
263+
| [`open_todos.py`](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/examples/open_todos.py) | Open to-dos due in the next N days or already late, by project. |
264264

265265
```bash
266266
python examples/overdue_invoices.py --out overdue.csv
@@ -467,7 +467,7 @@ The source is public, the license is not an open source license: noncommercial u
467467

468468
## License
469469

470-
[PolyForm Noncommercial License 1.0.0](LICENSE). In short:
470+
[PolyForm Noncommercial License 1.0.0](https://github.com/cotletdev/contractor-foreman-api-mcp-server/blob/main/LICENSE). In short:
471471

472472
- **Allowed:** noncommercial use: you, for your own personal purposes with your own Contractor Foreman account, or a charity, school, public research or government body. Changing the code, and sharing it under the same license.
473473
- **Not allowed:** any commercial use, your own business included; client work; selling or offering it, or a service built on it.
@@ -478,7 +478,7 @@ The source is public, the license is not an open source license: noncommercial u
478478
<a href="https://cotlet.dev">
479479
<picture>
480480
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-white.svg">
481-
<img src="assets/logo.svg" alt="Cotlet" width="120">
481+
<img src="https://raw.githubusercontent.com/cotletdev/contractor-foreman-api-mcp-server/main/assets/logo.svg" alt="Cotlet" width="120">
482482
</picture>
483483
</a>
484484
</p>

0 commit comments

Comments
 (0)