@opsee/mcp-server 0.3.2 → 0.3.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 +4 -4
- package/package.json +1 -1
- package/src/auth/oauth-provider.ts +1 -1
- package/src/server-http.ts +2 -2
- package/src/tools/tasks.ts +1 -1
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ Ask Claude things like:
|
|
|
57
57
|
|
|
58
58
|
## Remote MCP Server (Recommended)
|
|
59
59
|
|
|
60
|
-
The remote server runs in the cloud with OAuth 2.0 authentication
|
|
60
|
+
The remote server runs in the cloud with OAuth 2.0 authentication - no local setup or tokens needed.
|
|
61
61
|
|
|
62
62
|
### Environments
|
|
63
63
|
|
|
@@ -78,7 +78,7 @@ claude mcp add opsee-dev --transport http https://opsee-development.mcp.cls.codi
|
|
|
78
78
|
|
|
79
79
|
Restart Claude Code. On first use, your browser opens for Opsee login. After authenticating, all tools are available immediately.
|
|
80
80
|
|
|
81
|
-
You can have both environments connected at the same time
|
|
81
|
+
You can have both environments connected at the same time - use tools prefixed with the server name (e.g. `opsee` for production, `opsee-dev` for development).
|
|
82
82
|
|
|
83
83
|
### Cursor / Other MCP Clients
|
|
84
84
|
|
|
@@ -95,7 +95,7 @@ You can have both environments connected at the same time — use tools prefixed
|
|
|
95
95
|
|
|
96
96
|
Replace the URL with the development endpoint if targeting that environment.
|
|
97
97
|
|
|
98
|
-
Your MCP client handles the OAuth flow automatically
|
|
98
|
+
Your MCP client handles the OAuth flow automatically - just sign in when prompted.
|
|
99
99
|
|
|
100
100
|
### How it works
|
|
101
101
|
|
|
@@ -189,7 +189,7 @@ kubectl apply -k mcp/k8/environments/production/ -n opsee-production
|
|
|
189
189
|
| `MCP_PORT` | Bind port | `3100` |
|
|
190
190
|
| `OPSEE_API_URL` | Backend Connect RPC URL | `https://grpc.api.opsee.ai` |
|
|
191
191
|
| `OPSEE_APP_URL` | Frontend URL (OAuth login page) | `https://opsee.ai` |
|
|
192
|
-
| `OPSEE_API_TOKEN` | Direct JWT token for local mode |
|
|
192
|
+
| `OPSEE_API_TOKEN` | Direct JWT token for local mode | - |
|
|
193
193
|
| `OPSEE_CREDENTIALS_PATH` | Override credential file path | `~/.opsee/credentials.json` |
|
|
194
194
|
|
|
195
195
|
## Local Development
|
package/package.json
CHANGED
|
@@ -42,7 +42,7 @@ export class OpseeClientStore implements OAuthRegisteredClientsStore {
|
|
|
42
42
|
const known = this.clients.get(clientId);
|
|
43
43
|
if (known) return known;
|
|
44
44
|
|
|
45
|
-
// Accept any client ID
|
|
45
|
+
// Accept any client ID - required for stateless multi-replica deployments
|
|
46
46
|
// where registration may have happened on a different pod.
|
|
47
47
|
// The OAuth flow itself (PKCE + auth code) provides the security.
|
|
48
48
|
return {
|
package/src/server-http.ts
CHANGED
|
@@ -90,7 +90,7 @@ export async function startHttpServer(): Promise<void> {
|
|
|
90
90
|
});
|
|
91
91
|
|
|
92
92
|
// --- MCP Streamable HTTP transport (stateless mode) ---
|
|
93
|
-
// Each request creates a fresh transport+server
|
|
93
|
+
// Each request creates a fresh transport+server - no session persistence needed.
|
|
94
94
|
// This works reliably behind proxies/load balancers and with Claude Code's HTTP transport.
|
|
95
95
|
|
|
96
96
|
app.all("/mcp", authMiddleware, async (req, res) => {
|
|
@@ -100,7 +100,7 @@ export async function startHttpServer(): Promise<void> {
|
|
|
100
100
|
// Wrap the MCP handling in the token context so API calls use this user's JWT
|
|
101
101
|
await tokenContext.run({ token: accessToken || "" }, async () => {
|
|
102
102
|
const transport = new StreamableHTTPServerTransport({
|
|
103
|
-
sessionIdGenerator: undefined, // stateless
|
|
103
|
+
sessionIdGenerator: undefined, // stateless - no session IDs
|
|
104
104
|
});
|
|
105
105
|
|
|
106
106
|
const mcpServer = createServer();
|
package/src/tools/tasks.ts
CHANGED
|
@@ -170,7 +170,7 @@ export function registerTaskTools(
|
|
|
170
170
|
|
|
171
171
|
server.tool(
|
|
172
172
|
"opsee_update_task",
|
|
173
|
-
"Update a task's fields (patch semantics
|
|
173
|
+
"Update a task's fields (patch semantics - only provided fields are changed). Fetches the current task first, merges your changes, and sends the full update.",
|
|
174
174
|
{
|
|
175
175
|
taskId: z.number().describe("The task ID to update"),
|
|
176
176
|
title: z.string().optional().describe("New title"),
|