Skip to content

Commit cb2a7ce

Browse files
committed
get metadata from oauth server
1 parent 1dce40d commit cb2a7ce

File tree

3 files changed

+149
-34
lines changed

3 files changed

+149
-34
lines changed

package-lock.json

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

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@
1010
"devDependencies": {
1111
"@biomejs/biome": "1.9.4",
1212
"supabase": "^2.1.1"
13+
},
14+
"dependencies": {
15+
"axios": "^1.11.0"
1316
}
1417
}

packages/mcp-server-supabase/src/transports/http.ts

Lines changed: 12 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Hono } from 'hono';
2+
import axios from 'axios';
23
import { createSupabaseMcpServer } from '../server.js';
34
import { StatelessHttpServerTransport } from '@supabase/mcp-utils';
45
import { serve } from '@hono/node-server';
@@ -85,42 +86,19 @@ app.delete('/mcp', async (c) => {
8586
);
8687
});
8788

88-
const oauthMetadata = {
89-
issuer: `${managementApiUrl}`,
90-
authorization_endpoint: `${managementApiUrl}/v1/oauth/authorize`,
91-
token_endpoint: `${managementApiUrl}/v1/oauth/token`,
92-
registration_endpoint: `${managementApiUrl}/platform/oauth/apps/register`,
93-
token_endpoint_auth_methods_supported: ['client_secret_post'],
94-
scopes_supported: [
95-
'analytics:read',
96-
'analytics:write',
97-
'auth:read',
98-
'auth:write',
99-
'database:read',
100-
'database:write',
101-
'domains:read',
102-
'domains:write',
103-
'edge_functions:read',
104-
'edge_functions:write',
105-
'environment:read',
106-
'environment:write',
107-
'organizations:read',
108-
'organizations:write',
109-
'projects:read',
110-
'projects:write',
111-
'rest:read',
112-
'rest:write',
113-
'secrets:read',
114-
'secrets:write',
115-
'storage:read',
116-
'storage:write',
117-
],
118-
response_types_supported: ['code'],
119-
response_modes_supported: ['query'],
120-
grant_types_supported: ['authorization_code', 'refresh_token'],
121-
code_challenge_methods_supported: ['S256'],
89+
const fetchOauthMetadata = async () => {
90+
const response = await axios.get(
91+
`${managementApiUrl}/.well-known/oauth-authorization-server`
92+
);
93+
if (response.status != 200) {
94+
throw new Error('Failed to fetch OAuth metadata');
95+
}
96+
97+
return response.data;
12298
};
12399

100+
const oauthMetadata = await fetchOauthMetadata();
101+
124102
const protectedResourceMetadata = {
125103
resource: `http://localhost:${port}`, // "https://api.supabase.io/mcp",
126104
authorization_servers: [oauthMetadata.issuer],

0 commit comments

Comments
 (0)