Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion apps/sim/app/api/mcp/copilot/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {
import { DIRECT_TOOL_DEFS, SUBAGENT_TOOL_DEFS } from '@/lib/copilot/tools/mcp/definitions'
import { env } from '@/lib/core/config/env'
import { RateLimiter } from '@/lib/core/rate-limiter'
import { getBaseUrl } from '@/lib/core/utils/urls'
import {
authorizeWorkflowByWorkspacePermission,
resolveWorkflowIdForUser,
Expand Down Expand Up @@ -542,7 +543,8 @@ export async function POST(request: NextRequest) {
const hasAuth = request.headers.has('authorization') || request.headers.has('x-api-key')

if (!hasAuth) {
const resourceMetadataUrl = `${request.nextUrl.origin}/.well-known/oauth-protected-resource/api/mcp/copilot`
const origin = getBaseUrl().replace(/\/$/, '')
const resourceMetadataUrl = `${origin}/.well-known/oauth-protected-resource/api/mcp/copilot`
return new NextResponse(JSON.stringify({ error: 'unauthorized' }), {
status: 401,
headers: {
Expand Down
9 changes: 5 additions & 4 deletions apps/sim/lib/mcp/oauth-discovery.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { type NextRequest, NextResponse } from 'next/server'
import { getBaseUrl } from '@/lib/core/utils/urls'

function getOrigin(request: NextRequest): string {
return request.nextUrl.origin
function getOrigin(): string {
return getBaseUrl().replace(/\/$/, '')
}

export function createMcpAuthorizationServerMetadataResponse(request: NextRequest): NextResponse {
const origin = getOrigin(request)
const origin = getOrigin()
Comment thread
cursor[bot] marked this conversation as resolved.
const resource = `${origin}/api/mcp/copilot`

return NextResponse.json(
Expand Down Expand Up @@ -35,7 +36,7 @@ export function createMcpAuthorizationServerMetadataResponse(request: NextReques
}

export function createMcpProtectedResourceMetadataResponse(request: NextRequest): NextResponse {
const origin = getOrigin(request)
const origin = getOrigin()
const resource = `${origin}/api/mcp/copilot`
const authorizationServerIssuer = origin

Expand Down