mcp-server-peecai 0.2.1 → 0.3.0
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 +16 -22
- package/dist/index.js +21 -12
- package/dist/index.js.map +1 -1
- package/dist/prompts.js +18 -9
- package/dist/prompts.js.map +1 -1
- package/dist/tools/brands.js +8 -4
- package/dist/tools/brands.js.map +1 -1
- package/dist/tools/chat-content.js +7 -3
- package/dist/tools/chat-content.js.map +1 -1
- package/dist/tools/chats.js +10 -6
- package/dist/tools/chats.js.map +1 -1
- package/dist/tools/models.js +8 -4
- package/dist/tools/models.js.map +1 -1
- package/dist/tools/projects.js +7 -3
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/prompts.js +8 -4
- package/dist/tools/prompts.js.map +1 -1
- package/dist/tools/report-brands.js +15 -11
- package/dist/tools/report-brands.js.map +1 -1
- package/dist/tools/report-domains.js +15 -11
- package/dist/tools/report-domains.js.map +1 -1
- package/dist/tools/report-urls.js +15 -11
- package/dist/tools/report-urls.js.map +1 -1
- package/dist/tools/tags.js +8 -4
- package/dist/tools/tags.js.map +1 -1
- package/dist/tools/topics.js +8 -4
- package/dist/tools/topics.js.map +1 -1
- package/package.json +1 -3
package/README.md
CHANGED
|
@@ -6,8 +6,12 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
+
<a href="https://github.com/thein-art/mcp-server-peecai/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/thein-art/mcp-server-peecai/ci.yml?branch=main&style=flat-square&label=CI" alt="CI"></a>
|
|
9
10
|
<img src="https://img.shields.io/badge/node-%3E%3D22-brightgreen?style=flat-square&logo=node.js&logoColor=white" alt="Node.js >= 22">
|
|
10
11
|
<img src="https://img.shields.io/badge/MCP-compatible-0098FF?style=flat-square" alt="MCP compatible">
|
|
12
|
+
<a href="./LICENSE"><img src="https://img.shields.io/github/license/thein-art/mcp-server-peecai?style=flat-square" alt="License"></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/mcp-server-peecai"><img src="https://img.shields.io/npm/v/mcp-server-peecai?style=flat-square" alt="npm"></a>
|
|
14
|
+
<a href="https://www.npmjs.com/package/mcp-server-peecai"><img src="https://img.shields.io/npm/dm/mcp-server-peecai?style=flat-square" alt="Downloads"></a>
|
|
11
15
|
</p>
|
|
12
16
|
|
|
13
17
|
> **Note:** This is an unofficial community project, not affiliated with or endorsed by Peec AI. It requires a [Peec AI](https://peec.ai) account and API key.
|
|
@@ -18,7 +22,7 @@
|
|
|
18
22
|
|
|
19
23
|
## What it does
|
|
20
24
|
|
|
21
|
-
Peec AI tracks how brands appear in AI-generated answers. This MCP server gives
|
|
25
|
+
Peec AI tracks how brands appear in AI-generated answers. This MCP server gives any MCP-compatible client direct access to that data — 11 tools covering projects, brands, prompts, chats, and analytics reports.
|
|
22
26
|
|
|
23
27
|
**Key capabilities:**
|
|
24
28
|
- Query brand visibility, sentiment, and position across AI models
|
|
@@ -32,30 +36,20 @@ Peec AI tracks how brands appear in AI-generated answers. This MCP server gives
|
|
|
32
36
|
|
|
33
37
|
Sign up at [app.peec.ai](https://app.peec.ai) and create an API key under **Settings > API Keys**.
|
|
34
38
|
|
|
35
|
-
### 2.
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
git clone https://github.com/thein-art/mcp-server-peecai.git
|
|
39
|
-
cd mcp-server-peecai
|
|
40
|
-
npm install && npm run build
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 3. Configure
|
|
39
|
+
### 2. Configure
|
|
44
40
|
|
|
45
41
|
<details open>
|
|
46
42
|
<summary><strong>Claude Code</strong></summary>
|
|
47
43
|
|
|
48
|
-
The repository includes a `.mcp.json` for automatic setup. Set the environment variables and Claude Code will pick it up:
|
|
49
|
-
|
|
50
44
|
```bash
|
|
51
|
-
|
|
52
|
-
export PEECAI_PROJECT_ID="your-project-id" # optional default
|
|
45
|
+
claude mcp add --transport stdio peecai -- npx -y mcp-server-peecai
|
|
53
46
|
```
|
|
54
47
|
|
|
55
|
-
|
|
48
|
+
Set environment variables:
|
|
56
49
|
|
|
57
50
|
```bash
|
|
58
|
-
|
|
51
|
+
export PEECAI_API_KEY="your-api-key"
|
|
52
|
+
export PEECAI_PROJECT_ID="your-project-id" # optional default
|
|
59
53
|
```
|
|
60
54
|
|
|
61
55
|
</details>
|
|
@@ -69,8 +63,8 @@ Add to your `claude_desktop_config.json`:
|
|
|
69
63
|
{
|
|
70
64
|
"mcpServers": {
|
|
71
65
|
"peecai": {
|
|
72
|
-
"command": "
|
|
73
|
-
"args": ["
|
|
66
|
+
"command": "npx",
|
|
67
|
+
"args": ["-y", "mcp-server-peecai"],
|
|
74
68
|
"env": {
|
|
75
69
|
"PEECAI_API_KEY": "your-api-key",
|
|
76
70
|
"PEECAI_PROJECT_ID": "your-project-id"
|
|
@@ -91,8 +85,8 @@ Add to `.vscode/mcp.json` in your workspace:
|
|
|
91
85
|
{
|
|
92
86
|
"servers": {
|
|
93
87
|
"peecai": {
|
|
94
|
-
"command": "
|
|
95
|
-
"args": ["
|
|
88
|
+
"command": "npx",
|
|
89
|
+
"args": ["-y", "mcp-server-peecai"],
|
|
96
90
|
"env": {
|
|
97
91
|
"PEECAI_API_KEY": "your-api-key",
|
|
98
92
|
"PEECAI_PROJECT_ID": "your-project-id"
|
|
@@ -104,9 +98,9 @@ Add to `.vscode/mcp.json` in your workspace:
|
|
|
104
98
|
|
|
105
99
|
</details>
|
|
106
100
|
|
|
107
|
-
###
|
|
101
|
+
### 3. Verify
|
|
108
102
|
|
|
109
|
-
|
|
103
|
+
Confirm the `peecai` server is connected — in Claude Code run `/mcp`, in VS Code/Cursor check the MCP server status in the output panel.
|
|
110
104
|
|
|
111
105
|
## Tools
|
|
112
106
|
|
package/dist/index.js
CHANGED
|
@@ -30,9 +30,12 @@ if (!apiKey) {
|
|
|
30
30
|
process.exit(1);
|
|
31
31
|
}
|
|
32
32
|
const client = new PeecApiClient(apiKey);
|
|
33
|
-
const server = new McpServer({
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
const server = new McpServer({ name: "peecai", version }, {
|
|
34
|
+
instructions: "This server provides AI search analytics from Peec AI. " +
|
|
35
|
+
"Most tools require a project_id parameter — call list_projects first to find available project IDs. " +
|
|
36
|
+
"If PEECAI_PROJECT_ID is set, it will be used as the default when project_id is omitted. " +
|
|
37
|
+
"For reports (brands, domains, URLs), specify date ranges with start_date/end_date. " +
|
|
38
|
+
"Use list_brands, list_models, list_prompts to resolve IDs returned in reports.",
|
|
36
39
|
});
|
|
37
40
|
// Register tools
|
|
38
41
|
registerProjectsTool(server, client);
|
|
@@ -49,18 +52,24 @@ registerUrlsReportTool(server, client);
|
|
|
49
52
|
// Register MCP prompts (guided workflows)
|
|
50
53
|
registerPromptTemplates(server);
|
|
51
54
|
// Register resource: projects://list
|
|
52
|
-
server.
|
|
55
|
+
server.registerResource("projects-list", "projects://list", {
|
|
53
56
|
description: "List all available Peec AI projects for the authenticated account.",
|
|
54
57
|
mimeType: "application/json",
|
|
55
58
|
}, async () => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
try {
|
|
60
|
+
const projects = await client.get("/projects", { limit: 1000 });
|
|
61
|
+
return {
|
|
62
|
+
contents: [{
|
|
63
|
+
uri: "projects://list",
|
|
64
|
+
mimeType: "application/json",
|
|
65
|
+
text: JSON.stringify(projects),
|
|
66
|
+
}],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
71
|
+
throw new Error(`Failed to fetch projects: ${message}`);
|
|
72
|
+
}
|
|
64
73
|
});
|
|
65
74
|
async function main() {
|
|
66
75
|
const transport = new StdioServerTransport();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AAEzC,MAAM,MAAM,GAAG,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.js
CHANGED
|
@@ -2,9 +2,12 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
/** Registers guided workflow prompts for common Peec AI analytics tasks. */
|
|
4
4
|
export function registerPromptTemplates(server) {
|
|
5
|
-
server.
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
server.registerPrompt("brand-visibility-analysis", {
|
|
6
|
+
description: "Analyze brand visibility, sentiment, and position across AI models for a project.",
|
|
7
|
+
argsSchema: {
|
|
8
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted)").optional(),
|
|
9
|
+
period: z.enum(["7d", "28d", "90d"]).default("28d").describe("Analysis period"),
|
|
10
|
+
},
|
|
8
11
|
}, ({ project_id, period }) => {
|
|
9
12
|
const days = { "7d": 7, "28d": 28, "90d": 90 }[period];
|
|
10
13
|
const endDate = new Date().toISOString().slice(0, 10);
|
|
@@ -32,9 +35,12 @@ export function registerPromptTemplates(server) {
|
|
|
32
35
|
}],
|
|
33
36
|
};
|
|
34
37
|
});
|
|
35
|
-
server.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
server.registerPrompt("competitive-gap-analysis", {
|
|
39
|
+
description: "Compare own brand vs competitors — identify visibility gaps across prompts and models.",
|
|
40
|
+
argsSchema: {
|
|
41
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted)").optional(),
|
|
42
|
+
period: z.enum(["7d", "28d", "90d"]).default("28d").describe("Analysis period"),
|
|
43
|
+
},
|
|
38
44
|
}, ({ project_id, period }) => {
|
|
39
45
|
const days = { "7d": 7, "28d": 28, "90d": 90 }[period];
|
|
40
46
|
const endDate = new Date().toISOString().slice(0, 10);
|
|
@@ -64,9 +70,12 @@ export function registerPromptTemplates(server) {
|
|
|
64
70
|
}],
|
|
65
71
|
};
|
|
66
72
|
});
|
|
67
|
-
server.
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
server.registerPrompt("ai-search-citation-report", {
|
|
74
|
+
description: "Analyze which URLs and domains get cited in AI responses — find content optimization opportunities.",
|
|
75
|
+
argsSchema: {
|
|
76
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted)").optional(),
|
|
77
|
+
period: z.enum(["7d", "28d", "90d"]).default("28d").describe("Analysis period"),
|
|
78
|
+
},
|
|
70
79
|
}, ({ project_id, period }) => {
|
|
71
80
|
const days = { "7d": 7, "28d": 28, "90d": 90 }[period];
|
|
72
81
|
const endDate = new Date().toISOString().slice(0, 10);
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4EAA4E;AAC5E,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/brands.js
CHANGED
|
@@ -4,10 +4,14 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { requireProjectId, summaryForList, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the list_brands tool for retrieving tracked brands and their domains. */
|
|
6
6
|
export function registerBrandsTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
server.registerTool("list_brands", {
|
|
8
|
+
description: "List tracked brands for a Peec AI project. Returns brand IDs, names, and associated domains.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
11
|
+
limit: z.number().min(1).max(10000).default(1000).describe("Max results (1-10000)").optional(),
|
|
12
|
+
offset: z.number().min(0).default(0).describe("Results to skip").optional(),
|
|
13
|
+
},
|
|
14
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
11
15
|
}, async ({ project_id, limit, offset }) => {
|
|
12
16
|
try {
|
|
13
17
|
const data = await client.get("/brands", {
|
package/dist/tools/brands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/tools/brands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,sFAAsF;AACtF,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAqB;IACzE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/tools/brands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,sFAAsF;AACtF,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAqB;IACzE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EAAE,8FAA8F;QAC3G,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC,CAAC,QAAQ,EAAE;YACjI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;YAC9F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC5E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAU,SAAS,EAAE;gBAChD,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;gBACxC,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,9 +4,13 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { requireProjectId, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the get_chat_content tool for retrieving full chat details. */
|
|
6
6
|
export function registerChatContentTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
server.registerTool("get_chat_content", {
|
|
8
|
+
description: "Get full content of a specific AI chat. Returns sources, brands mentioned, messages, queries, and products.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
chat_id: z.string().max(200).regex(/^[\w-]+$/, "Invalid chat_id format").describe("Chat ID to retrieve"),
|
|
11
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
12
|
+
},
|
|
13
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
10
14
|
}, async ({ chat_id, project_id }) => {
|
|
11
15
|
try {
|
|
12
16
|
const data = await client.getRaw(`/chats/${chat_id}/content`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-content.js","sourceRoot":"","sources":["../../src/tools/chat-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrE,4EAA4E;AAC5E,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAqB;IAC9E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"chat-content.js","sourceRoot":"","sources":["../../src/tools/chat-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrE,4EAA4E;AAC5E,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAqB;IAC9E,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,6GAA6G;QAC1H,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACxG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC,CAAC,QAAQ,EAAE;SAClI;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAc,UAAU,OAAO,UAAU,EAAE;gBACzE,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;aACzC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,aAAa,IAAI,CAAC,gBAAgB,CAAC,MAAM,SAAS,CAAC;YAC7I,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/chats.js
CHANGED
|
@@ -4,12 +4,16 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { requireProjectId, dateSchema, validateDateRange, summaryForList, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the list_chats tool for retrieving AI chat interactions with optional date filtering. */
|
|
6
6
|
export function registerChatsTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
server.registerTool("list_chats", {
|
|
8
|
+
description: "List AI chat interactions tracked by Peec AI. Returns up to limit results (default: 100). Always use date filters to scope results. Returns chat IDs, prompt/model refs, and dates. Without date filters, returns all chats.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
11
|
+
start_date: dateSchema.describe("Start date filter (YYYY-MM-DD). Omit for no lower bound.").optional(),
|
|
12
|
+
end_date: dateSchema.describe("End date filter (YYYY-MM-DD). Omit for no upper bound.").optional(),
|
|
13
|
+
limit: z.number().min(1).max(10000).default(100).describe("Max results (1-10000, default: 100)").optional(),
|
|
14
|
+
offset: z.number().min(0).default(0).describe("Results to skip").optional(),
|
|
15
|
+
},
|
|
16
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
13
17
|
}, async ({ project_id, start_date, end_date, limit, offset }) => {
|
|
14
18
|
try {
|
|
15
19
|
const dates = validateDateRange(start_date, end_date);
|
package/dist/tools/chats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/tools/chats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGpH,sGAAsG;AACtG,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAqB;IACxE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/tools/chats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGpH,sGAAsG;AACtG,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAqB;IACxE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,8NAA8N;QAC3O,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC,CAAC,QAAQ,EAAE;YACjI,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,0DAA0D,CAAC,CAAC,QAAQ,EAAE;YACtG,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC,QAAQ,EAAE;YAClG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE;YAC3G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC5E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAS,QAAQ,EAAE;gBAC9C,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;gBACxC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/models.js
CHANGED
|
@@ -4,10 +4,14 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { requireProjectId, summaryForList, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the list_models tool for retrieving tracked AI models. */
|
|
6
6
|
export function registerModelsTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
server.registerTool("list_models", {
|
|
8
|
+
description: "List AI models tracked by Peec AI (ChatGPT, Perplexity, etc.). Returns model IDs and active status.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
11
|
+
limit: z.number().min(1).max(10000).default(1000).describe("Max results (1-10000)").optional(),
|
|
12
|
+
offset: z.number().min(0).default(0).describe("Results to skip").optional(),
|
|
13
|
+
},
|
|
14
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
11
15
|
}, async ({ project_id, limit, offset }) => {
|
|
12
16
|
try {
|
|
13
17
|
const data = await client.get("/models", {
|
package/dist/tools/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/tools/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAqB;IACzE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/tools/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAqB;IACzE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EAAE,qGAAqG;QAClH,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC,CAAC,QAAQ,EAAE;YACjI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;YAC9F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC5E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAU,SAAS,EAAE;gBAChD,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;gBACxC,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/projects.js
CHANGED
|
@@ -4,9 +4,13 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { summaryForList, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the list_projects tool for retrieving all company projects. */
|
|
6
6
|
export function registerProjectsTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
server.registerTool("list_projects", {
|
|
8
|
+
description: "List all Peec AI projects for the company. Returns project IDs, names, and statuses. Status values: CUSTOMER (active, ongoing monitoring), CUSTOMER_ENDED, PITCH (active demo), PITCH_ENDED (completed demo), TRIAL, TRIAL_ENDED, ONBOARDING, DELETED. Use CUSTOMER projects for current data.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
limit: z.number().min(1).max(10000).default(1000).describe("Max results to return (1-10000)").optional(),
|
|
11
|
+
offset: z.number().min(0).default(0).describe("Number of results to skip").optional(),
|
|
12
|
+
},
|
|
13
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
10
14
|
}, async ({ limit, offset }) => {
|
|
11
15
|
try {
|
|
12
16
|
const data = await client.get("/projects", { limit, offset });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGnE,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAqB;IAC3E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGnE,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAqB;IAC3E,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,gSAAgS;QAC7S,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE;YACxG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;SACtF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAY,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/prompts.js
CHANGED
|
@@ -4,10 +4,14 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { requireProjectId, summaryForList, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the list_prompts tool for retrieving search prompts with metadata. */
|
|
6
6
|
export function registerPromptsTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
server.registerTool("list_prompts", {
|
|
8
|
+
description: "List search prompts for a Peec AI project. Returns prompt IDs, messages, tags, topics, locations, and search volume.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
11
|
+
limit: z.number().min(1).max(10000).default(1000).describe("Max results (1-10000)").optional(),
|
|
12
|
+
offset: z.number().min(0).default(0).describe("Results to skip").optional(),
|
|
13
|
+
},
|
|
14
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
11
15
|
}, async ({ project_id, limit, offset }) => {
|
|
12
16
|
try {
|
|
13
17
|
const data = await client.get("/prompts", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,mFAAmF;AACnF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAqB;IAC1E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,mFAAmF;AACnF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAqB;IAC1E,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,sHAAsH;QACnI,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC,CAAC,QAAQ,EAAE;YACjI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;YAC9F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC5E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAW,UAAU,EAAE;gBAClD,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;gBACxC,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -5,17 +5,21 @@ import { requireProjectId, dateSchema, dimensionsSchema, filterSchema, mergeFilt
|
|
|
5
5
|
const BRANDS_FILTER_FIELDS = ["model_id", "tag_id", "topic_id", "prompt_id", "brand_id"];
|
|
6
6
|
/** Registers the get_brands_report tool for brand visibility, sentiment, and position analytics. */
|
|
7
7
|
export function registerBrandsReportTool(server, client) {
|
|
8
|
-
server.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
.
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
server.registerTool("get_brands_report", {
|
|
9
|
+
description: "Get brand analytics report per brand. Metrics: visibility (visibility_count/visibility_total), share_of_voice (0-1), mention_count, sentiment (0-100 scale, 50=neutral), position (avg rank when mentioned, lower=better). Returns up to limit results (default: 100). Use brand_id shortcut or filters array for server-side filtering. Supports date filtering and dimensional breakdowns. Without date filters, returns data across all available dates.",
|
|
10
|
+
inputSchema: {
|
|
11
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
12
|
+
start_date: dateSchema.describe("Start date (YYYY-MM-DD). Omit for no lower bound.").optional(),
|
|
13
|
+
end_date: dateSchema.describe("End date (YYYY-MM-DD). Omit for no upper bound.").optional(),
|
|
14
|
+
dimensions: dimensionsSchema.optional(),
|
|
15
|
+
brand_id: z.string()
|
|
16
|
+
.describe("Convenience filter for a single brand (converted to server-side filter). Use list_brands to find IDs.")
|
|
17
|
+
.optional(),
|
|
18
|
+
filters: filterSchema(BRANDS_FILTER_FIELDS).optional(),
|
|
19
|
+
limit: z.number().min(1).max(10000).default(100).describe("Max results (1-10000, default: 100)"),
|
|
20
|
+
offset: z.number().min(0).default(0).describe("Results to skip"),
|
|
21
|
+
},
|
|
22
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
19
23
|
}, async ({ project_id, start_date, end_date, dimensions, brand_id, filters, limit, offset }) => {
|
|
20
24
|
try {
|
|
21
25
|
const dates = validateDateRange(start_date, end_date);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-brands.js","sourceRoot":"","sources":["../../src/tools/report-brands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG1L,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAElG,oGAAoG;AACpG,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,MAAqB;IAC/E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"report-brands.js","sourceRoot":"","sources":["../../src/tools/report-brands.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,17 +5,21 @@ import { requireProjectId, dateSchema, dimensionsSchema, filterSchema, mergeFilt
|
|
|
5
5
|
const DOMAINS_FILTER_FIELDS = ["model_id", "tag_id", "topic_id", "prompt_id", "domain", "url"];
|
|
6
6
|
/** Registers the get_domains_report tool for domain classification, usage, and citation analytics. */
|
|
7
7
|
export function registerDomainsReportTool(server, client) {
|
|
8
|
-
server.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
.
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
server.registerTool("get_domains_report", {
|
|
9
|
+
description: "Get domain analytics report: usage_rate (0-1, share of chats citing this domain) and citation_avg (avg citations per chat). Classification values: OWN, CORPORATE, COMPETITOR, EDITORIAL, REFERENCE, INSTITUTIONAL, UGC, OTHER. Returns up to limit results (default: 100). Use classification shortcut or filters array for server-side filtering. Without date filters, returns data across all available dates.",
|
|
10
|
+
inputSchema: {
|
|
11
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
12
|
+
start_date: dateSchema.describe("Start date (YYYY-MM-DD). Omit for no lower bound.").optional(),
|
|
13
|
+
end_date: dateSchema.describe("End date (YYYY-MM-DD). Omit for no upper bound.").optional(),
|
|
14
|
+
dimensions: dimensionsSchema.optional(),
|
|
15
|
+
classification: z.enum(["OWN", "CORPORATE", "COMPETITOR", "EDITORIAL", "REFERENCE", "INSTITUTIONAL", "UGC", "OTHER"])
|
|
16
|
+
.describe("Convenience filter by domain classification (converted to server-side filter).")
|
|
17
|
+
.optional(),
|
|
18
|
+
filters: filterSchema(DOMAINS_FILTER_FIELDS).optional(),
|
|
19
|
+
limit: z.number().min(1).max(10000).default(100).describe("Max results (1-10000, default: 100)"),
|
|
20
|
+
offset: z.number().min(0).default(0).describe("Results to skip"),
|
|
21
|
+
},
|
|
22
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
19
23
|
}, async ({ project_id, start_date, end_date, dimensions, classification, filters, limit, offset }) => {
|
|
20
24
|
try {
|
|
21
25
|
const dates = validateDateRange(start_date, end_date);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-domains.js","sourceRoot":"","sources":["../../src/tools/report-domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG3L,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAExG,sGAAsG;AACtG,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAqB;IAChF,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"report-domains.js","sourceRoot":"","sources":["../../src/tools/report-domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,17 +5,21 @@ import { requireProjectId, dateSchema, dimensionsSchema, filterSchema, mergeFilt
|
|
|
5
5
|
const URLS_FILTER_FIELDS = ["model_id", "tag_id", "topic_id", "prompt_id", "domain", "url"];
|
|
6
6
|
/** Registers the get_urls_report tool for URL classification, usage, and citation analytics. */
|
|
7
7
|
export function registerUrlsReportTool(server, client) {
|
|
8
|
-
server.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
.
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
server.registerTool("get_urls_report", {
|
|
9
|
+
description: "Get URL analytics report: usage_count (chats citing this URL), citation_count (total citations), citation_avg (avg citations per chat). Classification values: HOMEPAGE, CATEGORY_PAGE, PRODUCT_PAGE, LISTICLE, COMPARISON, PROFILE, ALTERNATIVE, DISCUSSION, HOW_TO_GUIDE, ARTICLE, OTHER. Returns up to limit results (default: 100). Use classification shortcut or filters array for server-side filtering. Without date filters, returns data across all available dates.",
|
|
10
|
+
inputSchema: {
|
|
11
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
12
|
+
start_date: dateSchema.describe("Start date (YYYY-MM-DD). Omit for no lower bound.").optional(),
|
|
13
|
+
end_date: dateSchema.describe("End date (YYYY-MM-DD). Omit for no upper bound.").optional(),
|
|
14
|
+
dimensions: dimensionsSchema.optional(),
|
|
15
|
+
classification: z.enum(["HOMEPAGE", "CATEGORY_PAGE", "PRODUCT_PAGE", "LISTICLE", "COMPARISON", "PROFILE", "ALTERNATIVE", "DISCUSSION", "HOW_TO_GUIDE", "ARTICLE", "OTHER"])
|
|
16
|
+
.describe("Convenience filter by URL classification (converted to server-side filter).")
|
|
17
|
+
.optional(),
|
|
18
|
+
filters: filterSchema(URLS_FILTER_FIELDS).optional(),
|
|
19
|
+
limit: z.number().min(1).max(10000).default(100).describe("Max results (1-10000, default: 100)"),
|
|
20
|
+
offset: z.number().min(0).default(0).describe("Results to skip"),
|
|
21
|
+
},
|
|
22
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
19
23
|
}, async ({ project_id, start_date, end_date, dimensions, classification, filters, limit, offset }) => {
|
|
20
24
|
try {
|
|
21
25
|
const dates = validateDateRange(start_date, end_date);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-urls.js","sourceRoot":"","sources":["../../src/tools/report-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGxL,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAErG,gGAAgG;AAChG,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAqB;IAC7E,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"report-urls.js","sourceRoot":"","sources":["../../src/tools/report-urls.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/tags.js
CHANGED
|
@@ -4,10 +4,14 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { requireProjectId, summaryForList, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the list_tags tool for retrieving category tags. */
|
|
6
6
|
export function registerTagsTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
server.registerTool("list_tags", {
|
|
8
|
+
description: "List category tags for a Peec AI project. Returns tag IDs and names.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
11
|
+
limit: z.number().min(1).max(10000).default(1000).describe("Max results (1-10000)").optional(),
|
|
12
|
+
offset: z.number().min(0).default(0).describe("Results to skip").optional(),
|
|
13
|
+
},
|
|
14
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
11
15
|
}, async ({ project_id, limit, offset }) => {
|
|
12
16
|
try {
|
|
13
17
|
const data = await client.get("/tags", {
|
package/dist/tools/tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAqB;IACvE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAqB;IACvE,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC,CAAC,QAAQ,EAAE;YACjI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;YAC9F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC5E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAQ,OAAO,EAAE;gBAC5C,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;gBACxC,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/topics.js
CHANGED
|
@@ -4,10 +4,14 @@ import { PeecApiClient } from "../api-client.js";
|
|
|
4
4
|
import { requireProjectId, summaryForList, toolResult, toolError } from "../util.js";
|
|
5
5
|
/** Registers the list_topics tool for retrieving topic groupings. */
|
|
6
6
|
export function registerTopicsTool(server, client) {
|
|
7
|
-
server.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
server.registerTool("list_topics", {
|
|
8
|
+
description: "List topic groupings for a Peec AI project. Returns topic IDs and names.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
project_id: z.string().describe("Project ID (uses PEECAI_PROJECT_ID env if omitted). Call list_projects to find IDs.").optional(),
|
|
11
|
+
limit: z.number().min(1).max(10000).default(1000).describe("Max results (1-10000)").optional(),
|
|
12
|
+
offset: z.number().min(0).default(0).describe("Results to skip").optional(),
|
|
13
|
+
},
|
|
14
|
+
annotations: { readOnlyHint: true, idempotentHint: true, destructiveHint: false, openWorldHint: false },
|
|
11
15
|
}, async ({ project_id, limit, offset }) => {
|
|
12
16
|
try {
|
|
13
17
|
const data = await client.get("/topics", {
|
package/dist/tools/topics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topics.js","sourceRoot":"","sources":["../../src/tools/topics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,qEAAqE;AACrE,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAqB;IACzE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"topics.js","sourceRoot":"","sources":["../../src/tools/topics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrF,qEAAqE;AACrE,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAqB;IACzE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC,CAAC,QAAQ,EAAE;YACjI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;YAC9F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SAC5E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAU,SAAS,EAAE;gBAChD,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;gBACxC,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-server-peecai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Community MCP server for the Peec AI API - AI Search Analytics",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,8 +45,6 @@
|
|
|
45
45
|
"zod": "^4.3.6"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@semantic-release/changelog": "^6.0.3",
|
|
49
|
-
"@semantic-release/git": "^10.0.1",
|
|
50
48
|
"@types/node": "^25.3.5",
|
|
51
49
|
"semantic-release": "^25.0.3",
|
|
52
50
|
"typescript": "^5.7.0",
|