@timesheetai/mcp 0.1.0-alpha.2 → 0.1.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -23
- package/dist/client.d.ts +1 -1
- package/dist/client.js +2 -2
- package/dist/client.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/server.js +7 -3
- package/dist/server.js.map +1 -1
- package/package.json +8 -9
package/README.md
CHANGED
|
@@ -12,12 +12,16 @@ on your behalf, without leaving your editor.
|
|
|
12
12
|
Motivating workflow: at the end of the day, ask your agent to summarize what it
|
|
13
13
|
worked on and have it call `add_time_entry` to record the time directly.
|
|
14
14
|
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
> **Step-by-step setup guide with screenshots:** [alpha.timesheetai.app/help/mcp](https://alpha.timesheetai.app/help/mcp)
|
|
18
|
+
|
|
15
19
|
## Tools
|
|
16
20
|
|
|
17
21
|
| Tool | What it does |
|
|
18
22
|
| ------------------- | ------------------------------------------------------------------------- |
|
|
19
23
|
| `list_workspaces` | List the workspaces your API key can access. |
|
|
20
|
-
| `list_projects` | List active projects and their active tasks (gives you `projectId`/`taskId`). |
|
|
24
|
+
| `list_projects` | List active projects and their active tasks (gives you `projectId`/`taskId`). Pass `search` to filter by approximate project name (handles typos/abbreviations). |
|
|
21
25
|
| `list_entries` | List your time entries for any date (defaults to today). |
|
|
22
26
|
| `add_time_entry` | Log one entry: `projectId`, optional `taskId`, `date`, `start`, `end`, `description`. |
|
|
23
27
|
| `delete_time_entry` | Delete one of your own entries by its numeric `id`. |
|
|
@@ -63,6 +67,11 @@ Environment variables take precedence over the config file.
|
|
|
63
67
|
|
|
64
68
|
## Host setup
|
|
65
69
|
|
|
70
|
+
> **Alpha release:** the package is published under the `alpha` npm dist-tag while it
|
|
71
|
+
> targets the alpha backend, so install it as **`@timesheetai/mcp@alpha`** (a plain
|
|
72
|
+
> `@timesheetai/mcp` has no `latest` yet). The alpha endpoint is the built-in default,
|
|
73
|
+
> so `TIMESHEETAI_BASE_URL` is optional below.
|
|
74
|
+
|
|
66
75
|
### Claude Desktop
|
|
67
76
|
|
|
68
77
|
`claude_desktop_config.json`:
|
|
@@ -72,7 +81,7 @@ Environment variables take precedence over the config file.
|
|
|
72
81
|
"mcpServers": {
|
|
73
82
|
"timesheetai": {
|
|
74
83
|
"command": "npx",
|
|
75
|
-
"args": ["-y", "@timesheetai/mcp"],
|
|
84
|
+
"args": ["-y", "@timesheetai/mcp@alpha"],
|
|
76
85
|
"env": {
|
|
77
86
|
"TIMESHEETAI_API_KEY": "ak_...",
|
|
78
87
|
"TIMESHEETAI_BASE_URL": "https://alpha.timesheetai.app"
|
|
@@ -88,7 +97,7 @@ Environment variables take precedence over the config file.
|
|
|
88
97
|
claude mcp add timesheetai \
|
|
89
98
|
--env TIMESHEETAI_API_KEY=ak_... \
|
|
90
99
|
--env TIMESHEETAI_BASE_URL=https://alpha.timesheetai.app \
|
|
91
|
-
-- npx -y @timesheetai/mcp
|
|
100
|
+
-- npx -y @timesheetai/mcp@alpha
|
|
92
101
|
```
|
|
93
102
|
|
|
94
103
|
### Codex CLI
|
|
@@ -98,36 +107,41 @@ claude mcp add timesheetai \
|
|
|
98
107
|
```toml
|
|
99
108
|
[mcp_servers.timesheetai]
|
|
100
109
|
command = "npx"
|
|
101
|
-
args = ["-y", "@timesheetai/mcp"]
|
|
110
|
+
args = ["-y", "@timesheetai/mcp@alpha"]
|
|
102
111
|
env = { TIMESHEETAI_API_KEY = "ak_...", TIMESHEETAI_BASE_URL = "https://alpha.timesheetai.app" }
|
|
103
112
|
```
|
|
104
113
|
|
|
105
114
|
## Local development
|
|
106
115
|
|
|
107
|
-
|
|
116
|
+
Inspect the server interactively with the MCP Inspector:
|
|
108
117
|
|
|
109
118
|
```bash
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
node packages/mcp/dist/index.js
|
|
119
|
+
TIMESHEETAI_API_KEY=ak_... \
|
|
120
|
+
npx @modelcontextprotocol/inspector npx -y @timesheetai/mcp@alpha
|
|
113
121
|
```
|
|
114
122
|
|
|
115
|
-
|
|
116
|
-
the **built `dist/` path** instead of `npx @timesheetai/mcp` (rebuild after any
|
|
117
|
-
source change). Create the API key from the dev Account Portal → API keys; a
|
|
118
|
-
key from your dev Clerk instance authenticates against the dev backend
|
|
119
|
-
(`http://localhost:5173`):
|
|
123
|
+
## How it works
|
|
120
124
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
125
|
+
This package is a thin **stdio MCP server** that proxies tool calls to the
|
|
126
|
+
TimesheetAI backend over authenticated HTTP. No database credentials or secrets
|
|
127
|
+
are ever exposed to the agent.
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Agent (Claude, Codex, …)
|
|
131
|
+
↓ MCP tool call (stdio)
|
|
132
|
+
@timesheetai/mcp (this package)
|
|
133
|
+
↓ HTTP + Bearer token
|
|
134
|
+
TimesheetAI backend
|
|
135
|
+
↓ API key verification → user + workspace resolution
|
|
136
|
+
↓ Database
|
|
126
137
|
```
|
|
127
138
|
|
|
128
|
-
|
|
139
|
+
**Typical agent flow:**
|
|
129
140
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
141
|
+
1. `list_projects` (optionally with `search`) → get `projectId` and `taskId`
|
|
142
|
+
2. `add_time_entry` → log the entry (idempotent on `clientRefId`)
|
|
143
|
+
3. `list_entries` → verify what was logged
|
|
144
|
+
4. `delete_time_entry` → correct a mistake
|
|
145
|
+
|
|
146
|
+
**Time format:** all times are wall-clock (`HH:mm`), dates `YYYY-MM-DD`.
|
|
147
|
+
The agent resolves "today" to an explicit date — the server never infers timezones.
|
package/dist/client.d.ts
CHANGED
|
@@ -61,7 +61,7 @@ export declare class TimesheetClient {
|
|
|
61
61
|
listWorkspaces(): Promise<{
|
|
62
62
|
workspaces: Workspace[];
|
|
63
63
|
}>;
|
|
64
|
-
listProjects(workspace?: string): Promise<{
|
|
64
|
+
listProjects(workspace?: string, search?: string): Promise<{
|
|
65
65
|
workspace: {
|
|
66
66
|
id: string;
|
|
67
67
|
name: string;
|
package/dist/client.js
CHANGED
|
@@ -55,8 +55,8 @@ export class TimesheetClient {
|
|
|
55
55
|
listWorkspaces() {
|
|
56
56
|
return this.request("/api/mcp/v1/workspaces");
|
|
57
57
|
}
|
|
58
|
-
listProjects(workspace) {
|
|
59
|
-
return this.request(`/api/mcp/v1/projects${queryString({ workspace })}`);
|
|
58
|
+
listProjects(workspace, search) {
|
|
59
|
+
return this.request(`/api/mcp/v1/projects${queryString({ workspace, search })}`);
|
|
60
60
|
}
|
|
61
61
|
listEntries(date, workspace) {
|
|
62
62
|
return this.request(`/api/mcp/v1/entries${queryString({ date, workspace })}`);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IACA;IAEA;IAJlB,YACkB,MAAc,EACd,IAAY,EAC5B,OAAe,EACC,OAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAEZ,YAAO,GAAP,OAAO,CAAU;QAGjC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AA8CD,SAAS,WAAW,CAAC,MAA0C;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CACvC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM;QAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAW,CAAC,CAAC;IACpD,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEvC,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,IAAkB;QACvD,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;gBACjD,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC7C,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,GAAG,IAAI,EAAE,OAAO;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAChB,CAAC,EACD,eAAe,EACf,kCAAkC,IAAI,CAAC,MAAM,CAAC,OAAO,KAClD,KAAe,EAAE,OAAO,IAAI,KAC/B,EAAE,CACH,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAExC,CAAC;QAET,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC;YACxB,MAAM,IAAI,QAAQ,CAChB,GAAG,CAAC,MAAM,EACV,GAAG,EAAE,IAAI,IAAI,OAAO,EACpB,GAAG,EAAE,OAAO,IAAI,4BAA4B,GAAG,CAAC,MAAM,EAAE,EACxD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,IAAS,CAAC;IACnB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAChD,CAAC;IAED,YAAY,CACV,SAAkB;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/server.js
CHANGED
|
@@ -48,13 +48,17 @@ export function createServer(config = loadConfig()) {
|
|
|
48
48
|
});
|
|
49
49
|
server.registerTool("list_projects", {
|
|
50
50
|
title: "List projects",
|
|
51
|
-
description: "List active projects and their active tasks. Call this first to get the projectId and taskId needed by add_time_entry.",
|
|
51
|
+
description: "List active projects and their active tasks. Call this first to get the projectId and taskId needed by add_time_entry. Pass search to filter by approximate name — matches project names first; if no project matches, falls back to task names across all projects.",
|
|
52
52
|
inputSchema: {
|
|
53
53
|
workspace: z.string().describe(WORKSPACE_DESC).optional(),
|
|
54
|
+
search: z
|
|
55
|
+
.string()
|
|
56
|
+
.describe("Optional fuzzy search term. First matches project names; if none match, falls back to task names and returns only projects containing a matching task (with tasks filtered to matches). Omit to return all projects and tasks.")
|
|
57
|
+
.optional(),
|
|
54
58
|
},
|
|
55
|
-
}, async ({ workspace }) => {
|
|
59
|
+
}, async ({ workspace, search }) => {
|
|
56
60
|
try {
|
|
57
|
-
return ok(await client.listProjects(workspace));
|
|
61
|
+
return ok(await client.listProjects(workspace, search));
|
|
58
62
|
}
|
|
59
63
|
catch (err) {
|
|
60
64
|
return fail(err);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOxD,SAAS,EAAE,CAAC,IAAa,EAAE,OAAgB;IACzC,MAAM,IAAI,GAAG,OAAO;QAClB,CAAC,CAAC,GAAG,OAAO,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAClD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,IAAI,CAAC,GAAY;IACxB,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YACxE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAW,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;SAC3E;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,8CAA8C,CAAC;AACjE,MAAM,cAAc,GAClB,iFAAiF,CAAC;AAEpF,MAAM,UAAU,YAAY,CAAC,SAAiB,UAAU,EAAE;IACxD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,sHAAsH;QACxH,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timesheetai/mcp",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.4",
|
|
4
4
|
"description": "MCP server for TimesheetAI (alpha) — connect AI agents (Claude, Codex, Cursor) to your timesheet. Sign up at alpha.timesheetai.app.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"comment:dist-tag": "Published under the `alpha` npm dist-tag while DEFAULT_BASE_URL points at alpha. Install with `@timesheetai/mcp@alpha`. At production launch: flip DEFAULT_BASE_URL to production, bump to a stable version, and publish to `latest`.",
|
|
@@ -20,13 +20,6 @@
|
|
|
20
20
|
"engines": {
|
|
21
21
|
"node": ">=20"
|
|
22
22
|
},
|
|
23
|
-
"scripts": {
|
|
24
|
-
"build": "tsc",
|
|
25
|
-
"dev": "tsc --watch",
|
|
26
|
-
"start": "node dist/index.js",
|
|
27
|
-
"typecheck": "tsc --noEmit",
|
|
28
|
-
"prepack": "pnpm build"
|
|
29
|
-
},
|
|
30
23
|
"dependencies": {
|
|
31
24
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
32
25
|
"zod": "^4.3.6"
|
|
@@ -34,5 +27,11 @@
|
|
|
34
27
|
"devDependencies": {
|
|
35
28
|
"@types/node": "^22.10.0",
|
|
36
29
|
"typescript": "^5.7.0"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsc",
|
|
33
|
+
"dev": "tsc --watch",
|
|
34
|
+
"start": "node dist/index.js",
|
|
35
|
+
"typecheck": "tsc --noEmit"
|
|
37
36
|
}
|
|
38
|
-
}
|
|
37
|
+
}
|