Skip to content

Unable to use locally through Claude Desktop #3

@denivic

Description

@denivic

Issue

As far as I understand you should be able to define an MCP server locally (e.g. using something like Northwind for test data), set the MCP_TRANSPORT/SAP_DESTINATION_NAME fields, and then be able to use the generated tools. Did I misunderstand what it means to "run locally" in this context?

Northwind is a public endpoint with no authentication. I can call the service just fine as such:

https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$top=5

But when I try to do it through odata-mcp-proxy it does two things:

  1. Produces an error when the following keys are not present even if OAuth isn't used:
<DESTINATION_NAME>_TOKEN_URL
<DESTINATION_NAME>_CLIENT_ID
<DESTINATION_NAME>_CLIENT_SECRET
  1. When adding the keys above it fails with Failed to build headers.

I'm not sure if I'm missing something here or if this is an actual issue with the local functionality.

Expected behavior

csrfProtected: false + no OAuth env vars = proxy calls the endpoint directly with no auth headers.

Actual behavior

The proxy requires OAuth vars regardless and fails to build headers even when they are provided with dummy values pointing at a non-OAuth endpoint.

Logs

Failed to resolve destination "northwind": Local fallback: NORTHWIND_TOKEN_URL environment variable is not set. Provide the OAuth2 token endpoint URL (e.g. https://<subdomain>.authentication.eu10.hana.ondemand.com/oauth/token).

After adding the dummy vars:

Error: Failed to build headers

Config

api-config.json:

{
    "server": {
        "name": "mcp-proxy-backend",
        "version": "1.0.0",
        "description": "My SAP MCP Server"
    },
    "apis": [
        {
            "name": "Northwind",
            "destination": "northwind",
            "pathPrefix": "/",
            "csrfProtected": false,
            "entitySets": [
                {
                    "entitySet": "Customers",
                    "urlPath": "Customers",
                    "description": "Contains customer data.",
                    "category": "master-data",
                    "keys": [
                        {
                            "name": "CustomerID",
                            "type": "string"
                        }
                    ],
                    "operations": {
                        "list": true,
                        "get": true,
                        "create": false,
                        "update": false,
                        "delete": false
                    }
                }
            ]
        }
    ]
}

claude-desktop-config.json:

{
  "mcpServers": {
    "northwind": {
      "command": "node",
      "args": [
        "C:\\Users\\<username>\\Desktop\\Work\\Projects\\mcp-proxy-backend\\node_modules\\odata-mcp-proxy\\dist\\index.js"
      ],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "NORTHWIND_BASE_URL": "https://services.odata.org/V2/Northwind/Northwind.svc",
        "API_CONFIG_FILE": "C:\\Users\\<username>\\Desktop\\Work\\Projects\\mcp-proxy-backend\\api-config.json"
      }
    }
  },
  "preferences": {
    "coworkScheduledTasksEnabled": false,
    "sidebarMode": "chat",
    "coworkWebSearchEnabled": true
  }
}

Steps To Reproduce

  1. Insert the relevant values into the relevant files as shown above.
  2. Try running it on Claude Desktop.
  3. Look at logs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions