@arizeai/phoenix-mcp 2.0.0 → 2.1.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 +1 -1
- package/README.md +62 -12
- package/build/index.js +5 -2
- package/build/{resources/readme.js → readmeResource.js} +1 -1
- package/package.json +2 -2
- package/build/resources/index.js +0 -1
- package/build/tools/index.js +0 -3
- /package/build/{tools/datasetTools.js → datasetTools.js} +0 -0
- /package/build/{tools/experimentTools.js → experimentTools.js} +0 -0
- /package/build/{tools/promptSchemas.js → promptSchemas.js} +0 -0
- /package/build/{tools/promptTools.js → promptTools.js} +0 -0
package/LICENSE
CHANGED
|
@@ -188,7 +188,7 @@ Copyright (c) Arize AI, Inc
|
|
|
188
188
|
same "printed page" as the copyright notice for easier
|
|
189
189
|
identification within third-party archives.
|
|
190
190
|
|
|
191
|
-
Copyright
|
|
191
|
+
Copyright 2025 Arize AI, Inc
|
|
192
192
|
|
|
193
193
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
194
194
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -1,22 +1,70 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center" style="border-bottom: none">
|
|
2
|
+
<div>
|
|
3
|
+
<a href="https://phoenix.arize.com/?utm_medium=github&utm_content=header_img&utm_campaign=phoenix-mcp">
|
|
4
|
+
<picture>
|
|
5
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Arize-ai/phoenix-assets/refs/heads/main/logos/Phoenix/phoenix.svg">
|
|
6
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/Arize-ai/phoenix-assets/refs/heads/main/logos/Phoenix/phoenix-white.svg">
|
|
7
|
+
<img alt="Arize Phoenix logo" src="https://raw.githubusercontent.com/Arize-ai/phoenix-assets/refs/heads/main/logos/Phoenix/phoenix.svg" width="100" />
|
|
8
|
+
</picture>
|
|
9
|
+
</a>
|
|
10
|
+
<br>
|
|
11
|
+
Arize Phoenix MCP Server
|
|
12
|
+
</div>
|
|
13
|
+
</h1>
|
|
2
14
|
|
|
3
|
-
|
|
15
|
+
[](https://github.com/Arize-ai/phoenix/blob/main/js/packages/phoenix-mcp/LICENSE)
|
|
16
|
+
<img src="https://badge.mcpx.dev?status=on" title="MCP Enabled"/>
|
|
4
17
|
|
|
5
|
-
|
|
18
|
+
Phoenix MCP Server is an implementation of the Model Context Protocol for the Arize Phoenix platform. It provides a unified interface to Phoenix's capabilites.
|
|
6
19
|
|
|
7
|
-
|
|
20
|
+
You can use Phoenix MCP Server for:
|
|
8
21
|
|
|
9
|
-
|
|
10
|
-
|
|
22
|
+
- **Prompts Management**: Create, list, update, and iterate on prompts
|
|
23
|
+
- **Datasets**: Explore datasets, and syntesize new examples
|
|
24
|
+
- **Experiments**: Pull experiment results and visualize them with the help of an LLM
|
|
25
|
+
|
|
26
|
+
Don't se a use-case covered? `@arizeai/phoenix-mcp` is [open-source](https://github.com/Arize-ai/phoenix)! Issues and PRs welcome.
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
This MCP server can be used using `npx` and can be directly integrated with clients like Claude Desktop, Cursor, and more.
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"mcpServers": {
|
|
35
|
+
"phoenix": {
|
|
36
|
+
"command": "npx",
|
|
37
|
+
"args": [
|
|
38
|
+
"-y",
|
|
39
|
+
"@arizeai/phoenix-mcp@latest",
|
|
40
|
+
"--baseUrl",
|
|
41
|
+
"https://my-phoenix.com",
|
|
42
|
+
"--apiKey",
|
|
43
|
+
"your-api-key"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
11
47
|
```
|
|
12
48
|
|
|
13
49
|
## Development
|
|
14
50
|
|
|
51
|
+
## Install
|
|
52
|
+
|
|
53
|
+
This package as managed via a pnpm workspace.
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
// From the /js/ directory
|
|
57
|
+
pnpm install -r
|
|
58
|
+
pnpm build -r
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
This only needs to be repeated if dependancies change or there is a change to the phoenix-client.
|
|
62
|
+
|
|
15
63
|
### Building
|
|
16
64
|
|
|
17
65
|
To build the project:
|
|
18
66
|
|
|
19
|
-
```
|
|
67
|
+
```sh
|
|
20
68
|
pnpm build
|
|
21
69
|
```
|
|
22
70
|
|
|
@@ -30,19 +78,21 @@ pnpm dev
|
|
|
30
78
|
|
|
31
79
|
### Debugging
|
|
32
80
|
|
|
33
|
-
|
|
81
|
+
You can build and run the MCP inspector using the following:
|
|
34
82
|
|
|
35
83
|
```bash
|
|
36
|
-
|
|
84
|
+
pnpm inspect
|
|
37
85
|
```
|
|
38
86
|
|
|
39
87
|
## Environment Variables
|
|
40
88
|
|
|
41
|
-
|
|
89
|
+
When developing, the server requires the following environment variables:
|
|
42
90
|
|
|
43
91
|
- `PHOENIX_API_KEY`: Your Phoenix API key
|
|
44
92
|
- `PHOENIX_BASE_URL`: The base URL for Phoenix
|
|
45
93
|
|
|
46
|
-
|
|
94
|
+
Make sure to set these in a `.env` file. See `.env.example`.
|
|
95
|
+
|
|
96
|
+
# License
|
|
47
97
|
|
|
48
|
-
|
|
98
|
+
Apache 2.0
|
package/build/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
/* eslint-disable no-console */
|
|
2
3
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
5
|
import { createClient } from "@arizeai/phoenix-client";
|
|
5
6
|
import minimist from "minimist";
|
|
6
|
-
import { initializeDatasetTools
|
|
7
|
-
import {
|
|
7
|
+
import { initializeDatasetTools } from "./datasetTools.js";
|
|
8
|
+
import { initializeExperimentTools } from "./experimentTools.js";
|
|
9
|
+
import { initializePromptTools } from "./promptTools.js";
|
|
10
|
+
import { initializeReadmeResources } from "./readmeResource.js";
|
|
8
11
|
const argv = minimist(process.argv.slice(2));
|
|
9
12
|
// Initialize Phoenix client
|
|
10
13
|
const client = createClient({
|
|
@@ -14,7 +14,7 @@ const _dirname = typeof __dirname !== "undefined"
|
|
|
14
14
|
*/
|
|
15
15
|
export async function initializeReadmeResources({ server, }) {
|
|
16
16
|
// Start from the directory where this file is located
|
|
17
|
-
const baseDir = path.dirname(path.resolve(_dirname, "
|
|
17
|
+
const baseDir = path.dirname(path.resolve(_dirname, "../../.."));
|
|
18
18
|
// TODO: Refactor to fetch from public github repo instead of filesystem
|
|
19
19
|
// Find all README files recursively (case insensitive)
|
|
20
20
|
const readmeFiles = await glob("**/README*", {
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arizeai/phoenix-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "A MCP server for Arize Phoenix",
|
|
5
5
|
"bin": {
|
|
6
|
-
"phoenix-mcp
|
|
6
|
+
"@arizeai/phoenix-mcp": "./build/index.js"
|
|
7
7
|
},
|
|
8
8
|
"type": "module",
|
|
9
9
|
"files": [
|
package/build/resources/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./readme.js";
|
package/build/tools/index.js
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|