Skip to content

Commit a583f4e

Browse files
committed
chore: bump version to 1.6.0, add changelog
1 parent fd839c2 commit a583f4e

3 files changed

Lines changed: 88 additions & 3 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@graphmemory/server",
3-
"version": "1.5.0",
3+
"version": "1.6.0",
44
"description": "MCP server for semantic graph memory from markdown files",
55
"main": "dist/cli/index.js",
66
"bin": {
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
slug: changelog-1-6-0
3+
title: "Graph Memory 1.6.0"
4+
authors: [graphmemory]
5+
tags: [release, changelog, oauth, mcp]
6+
description: "Graph Memory 1.6.0 — OAuth 2.0 for Claude.ai connectors, cleaner MCP responses, array syntax for include patterns, and tool naming consistency."
7+
---
8+
9+
Graph Memory **1.6.0** ships OAuth 2.0 support for AI chat clients, cleaner MCP tool responses, and several developer-experience improvements.
10+
11+
<!-- truncate -->
12+
13+
## OAuth 2.0 for AI chat clients
14+
15+
You can now connect Graph Memory to **Claude.ai** (and any OAuth-capable MCP client) without manually passing API keys. The server implements the OAuth 2.0 **client_credentials** flow — no login pages, no redirects.
16+
17+
### How to connect Claude.ai
18+
19+
1. Open **Claude.ai → Settings → Connectors → Add custom connector**
20+
2. Enter your server URL: `https://yourserver.com/mcp/your-project`
21+
3. Under **Advanced settings**, enter:
22+
- **OAuth Client ID** — your `userId` from `graph-memory.yaml`
23+
- **OAuth Client Secret** — your `apiKey` from `graph-memory.yaml`
24+
25+
Claude.ai handles the rest automatically: it fetches a short-lived token, uses it for all MCP requests, and refreshes it when it expires.
26+
27+
### New endpoints
28+
29+
| Endpoint | Purpose |
30+
|----------|---------|
31+
| `GET /.well-known/oauth-authorization-server` | RFC 8414 discovery |
32+
| `POST /oauth/token` | Issues a 1-hour Bearer JWT |
33+
34+
Requirements: `jwtSecret` must be set in `server` config; a public HTTPS URL is needed for Claude.ai (localhost works for local clients).
35+
36+
Existing API key authentication is fully backward-compatible — Claude Code, Cursor, and Windsurf continue to work unchanged.
37+
38+
## Cleaner MCP tool responses
39+
40+
MCP tool responses no longer include internal graph fields, null values, or empty arrays that were cluttering LLM context:
41+
42+
- `docs_get_node` — removed `fileEmbedding`, `pendingLinks`, `mtime`
43+
- `code_get_symbol` — removed `fileEmbedding`, `pendingImports`, `pendingEdges`
44+
- `notes_get`, `tasks_get`, `skills_get` — removed `version`; null fields and empty arrays stripped from output
45+
- `notes_list` — removed content preview (not in tool description)
46+
47+
This reduces token usage and makes responses easier for models to parse.
48+
49+
## Array syntax for `include` patterns
50+
51+
The `include` field in graph config now accepts a YAML array in addition to a single glob string, consistent with how `exclude` already works:
52+
53+
```yaml
54+
graphs:
55+
docs:
56+
include:
57+
- "**/*.md"
58+
- "**/*.mdx"
59+
code:
60+
include:
61+
- "**/*.ts"
62+
- "**/*.tsx"
63+
```
64+
65+
Single string syntax still works — no migration needed.
66+
67+
## Tool naming and parameter consistency
68+
69+
All 58 MCP tools were audited for naming consistency, parameter names, defaults, and parity with the REST API:
70+
71+
- Tools renamed to consistent `graph_verb_noun` prefixes across all six graphs
72+
- Parameter names and defaults aligned between MCP tools and REST endpoints
73+
- Docs, site, UI help text, and the prompt builder updated to match
74+
75+
## Security improvement
76+
77+
Authentication is now checked **before** project lookup in the MCP handler. Previously, unauthenticated requests could determine which project IDs existed by observing 404 vs 401 responses. Now all unauthenticated requests get a consistent 401 with `WWW-Authenticate: Bearer`.
78+
79+
---
80+
81+
Update with:
82+
83+
```bash
84+
npm install -g @graphmemory/server@1.6.0
85+
```

0 commit comments

Comments
 (0)