@timetick/mcp 0.2.1 → 0.3.1
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/LICENSE +662 -0
- package/README.md +41 -76
- package/dist/index.js +3100 -284
- package/package.json +8 -4
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,113 +1,78 @@
|
|
|
1
1
|
# @timetick/mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Run [Timetick](https://timetick.io) from your AI client. Say "I want to test my CSMS" and the agent signs you in, sets up simulators, runs the test and explains the result. It works with OCPP 1.6 and 2.0.1, and can test a CSMS or a real charger.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Install
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Claude Code:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```
|
|
10
|
+
claude mcp add timetick -- npx -y @timetick/mcp@latest
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Codex:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
codex mcp add timetick -- npx -y @timetick/mcp@latest
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Gemini CLI, Claude Desktop, Cursor and other MCP clients:
|
|
10
20
|
|
|
11
21
|
```json
|
|
12
22
|
{
|
|
13
23
|
"mcpServers": {
|
|
14
24
|
"timetick": {
|
|
15
25
|
"command": "npx",
|
|
16
|
-
"args": ["-y", "@timetick/mcp"]
|
|
17
|
-
"env": { "TIMETICK_API_TOKEN": "your_api_key_here" }
|
|
26
|
+
"args": ["-y", "@timetick/mcp@latest"]
|
|
18
27
|
}
|
|
19
28
|
}
|
|
20
29
|
}
|
|
21
30
|
```
|
|
22
31
|
|
|
23
|
-
|
|
32
|
+
Keep `@latest` so you stay on the current version.
|
|
24
33
|
|
|
25
|
-
|
|
26
|
-
- _"power on CP-001"_
|
|
27
|
-
- _"create a full charge cycle test and run it on CP-001"_
|
|
34
|
+
## Sign in
|
|
28
35
|
|
|
29
|
-
|
|
36
|
+
Ask the agent to log in to Timetick. A page opens in your browser where you can sign in, create an account or paste an API key. Your password stays out of the AI conversation.
|
|
30
37
|
|
|
31
|
-
|
|
38
|
+
If you use Google or LinkedIn to sign in, create an API key in the portal under **API keys** and paste it on that page.
|
|
32
39
|
|
|
33
|
-
|
|
34
|
-
| -------------------- | -------- | ------------------------------------------------------------ |
|
|
35
|
-
| `TIMETICK_API_TOKEN` | yes | Your Timetick API key, sent as `x-api-key` |
|
|
36
|
-
| `TIMETICK_API_URL` | no | API endpoint (defaults to `https://app.timetick.io/graphql`) |
|
|
37
|
-
| `TIMETICK_MCP_READONLY` | no | `1` or `true` — read-only mode, see below |
|
|
40
|
+
On a machine with no browser, such as over SSH, set `TIMETICK_API_TOKEN` to your API key in the client config.
|
|
38
41
|
|
|
39
|
-
|
|
42
|
+
To switch accounts, ask the agent to log in again. To use two accounts at once, add the server twice, each with its own `TIMETICK_API_TOKEN`.
|
|
40
43
|
|
|
41
|
-
|
|
44
|
+
## Test your CSMS
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
Simulators connect to your CSMS from Timetick's cloud, so it needs a public `ws://` or `wss://` address. Your CSMS sees the simulator's name as the charge point identity.
|
|
44
47
|
|
|
45
|
-
|
|
48
|
+
Steps on the charger side, such as plugging in, run automatically. Steps named `Remote:` wait for your CSMS to send the command. If you set expected results, the step passes or fails on its own. Otherwise the agent asks you what happened.
|
|
46
49
|
|
|
47
|
-
|
|
48
|
-
| ------------------------ | ---------------------------------------------------------------- |
|
|
49
|
-
| Your key has one project | It is selected automatically |
|
|
50
|
-
| Your key has several | Call `use_project` once, by name or id; it holds for the session |
|
|
51
|
-
| Any time | `get_context` reports the active project and sim world |
|
|
50
|
+
## Test a real charger
|
|
52
51
|
|
|
53
|
-
|
|
52
|
+
Your charger connects to Timetick's CSMS. Someone at the charger does the physical steps, and `Remote:` steps run automatically.
|
|
54
53
|
|
|
55
|
-
##
|
|
54
|
+
## What you can do
|
|
56
55
|
|
|
57
|
-
|
|
56
|
+
- Create and manage simulators, hardware, models and OCPP configurations
|
|
57
|
+
- Write tests or start from a template
|
|
58
|
+
- Run tests, test plans and Stress Tests
|
|
59
|
+
- Read results and OCPP logs
|
|
60
|
+
- Manage projects, tags and API keys
|
|
58
61
|
|
|
59
|
-
|
|
62
|
+
Some things still need the [portal](https://app.timetick.io): billing, resetting a password, and security profiles (Basic Auth or certificates towards a CSMS).
|
|
60
63
|
|
|
61
|
-
|
|
62
|
-
| ------------- | -------------------------------- |
|
|
63
|
-
| `get_context` | The active project and sim world |
|
|
64
|
-
| `use_project` | Switch the active project |
|
|
64
|
+
## Projects and trial
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
Your first project gets the free trial, which starts when you create it. Any further project needs payment details, which you add in the portal.
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
| ----------------- | ------------------------------------------------------- |
|
|
70
|
-
| `list_projects` | Projects your API key can reach |
|
|
71
|
-
| `list_simulators` | Virtual chargers, filtered by name or protocol |
|
|
72
|
-
| `get_simulator` | One simulator: network status, power status, connectors |
|
|
73
|
-
| `list_hardware` | Physical OCPP devices |
|
|
74
|
-
| `list_actions` | The step library available for building tests |
|
|
68
|
+
A project with no active plan is read-only. If you started onboarding in the portal and didn't finish, ask the agent to start the trial.
|
|
75
69
|
|
|
76
|
-
|
|
70
|
+
If you have several projects, tell the agent which one to use.
|
|
77
71
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
| Tool | Description |
|
|
81
|
-
| ---------------------- | ----------------------------------------------------------------------------------- |
|
|
82
|
-
| `get_simulator_config` | OCPP keys (credential values masked), behavior, model, connector types, last run |
|
|
83
|
-
| `get_simulator_logs` | OCPP messages in a window: `from`/`to` (ISO) or `last` (`30m`, `6h`), `limit`, `action` |
|
|
84
|
-
| `get_test_run_details` | A run's status and fail reason, one page of its simulators (`page`), and the steps of one `simulator` |
|
|
85
|
-
|
|
86
|
-
The `simulator` argument of every tool also takes a portal link, e.g. `https://app.timetick.io/projects/1/simulators/42?tab=testPlays`. A link is resolved by the simulator id in it, never by name.
|
|
87
|
-
|
|
88
|
-
### Control simulators
|
|
89
|
-
|
|
90
|
-
| Tool | Description |
|
|
91
|
-
| ---------------------- | -------------------------------------------------------------------- |
|
|
92
|
-
| `power_on_simulator` | Boot a simulator and connect it to the OCPP server |
|
|
93
|
-
| `power_off_simulator` | Shut a simulator down |
|
|
94
|
-
| `run_simulator_action` | Run one step — reset, plug in, plug out — with `key=value` arguments |
|
|
95
|
-
|
|
96
|
-
### Tests
|
|
97
|
-
|
|
98
|
-
| Tool | Description |
|
|
99
|
-
| ------------- | ----------------------------------------------- |
|
|
100
|
-
| `list_tests` | Tests in the active sim world |
|
|
101
|
-
| `get_test` | One test, with its device requirements |
|
|
102
|
-
| `create_test` | Build a test from an ordered list of step names |
|
|
72
|
+
## Read-only mode
|
|
103
73
|
|
|
104
|
-
|
|
74
|
+
Set `TIMETICK_MCP_READONLY=1` and the agent can read your data but not change it. You can still sign in and out.
|
|
105
75
|
|
|
106
|
-
|
|
107
|
-
| ---------------- | --------------------------- |
|
|
108
|
-
| `run_test` | Start a test on a simulator |
|
|
109
|
-
| `get_test_run` | Status of a run |
|
|
110
|
-
| `list_test_runs` | Recent runs |
|
|
111
|
-
| `stop_test_run` | Shut a run down |
|
|
76
|
+
## Help
|
|
112
77
|
|
|
113
|
-
|
|
78
|
+
For questions, write to support@timetick.io.
|