GATE017: Remote MCP server has no configured authentication
A remote MCP server is configured with no credential, no authorization header and no OAuth configuration.
- Name
Severity- Type
- Medium
- Description
Default severity. An individual finding may be reported higher or lower when the surrounding configuration justifies it.
- Name
Explain locally- Type
- gate explain GATE017
- Description
The same text, in your terminal, with no network access.
What Gate detected
Gate found a remote (http or sse) MCP server on a non-local host with no Authorization header, no credential in env, and no recognisable auth configuration. Gate reports this conservatively: a server may legitimately authenticate through a mechanism Gate cannot see, such as a completed OAuth flow whose tokens live in the client's own store.
Why this matters
An unauthenticated remote endpoint is reachable by anything that can route to it. If it exposes tools that touch your data, the access control on your data is now "whoever finds the URL". If it does not authenticate you, it also usually does not authenticate itself to you, so you have no assurance that the server answering is the one you configured.
Example
This is the shape of configuration that triggers the rule.
{
"mcpServers": {
"internal": { "type": "http", "url": "https://mcp.internal.example/v1" }
}
}
Remediation
Confirm how this server authenticates. Prefer the OAuth flow described in the MCP authorization specification, with audience-restricted, short-lived tokens. If the server genuinely requires no authentication, confirm that it also exposes no sensitive data.
Suppressing this rule
If this finding is acceptable in your repository, record why alongside the suppression:
gate.config.ts
export default defineConfig({
ignore: [
{
rule: 'GATE017',
reason: 'Why this is acceptable here',
},
],
})
Gate refuses to apply an ignore entry with no reason. The reason is the only thing that will tell the next person whether the suppression is still true.