Model Context Protocol (MCP)
The Model Context Protocol (MCP) servers the Urda Anvil runs by default, and exactly what permission each tool carries.
Every tool below carries two tags: what it does read search write and what Claude is allowed to do with it . Allow runs without asking, ask prompts for confirmation, and deny is blocked outright. The allow and deny rules are shown under Configuration · Claude; ask carries no rule of its own, because Claude Code prompts for anything a rule has not already allowed or denied.
Configuration · Claude
Server registration lives in ~/.claude.json; the permission
allow-list lives in ~/.claude/settings.json.
Servers · ~/.claude.json
{
"atlassian": {
"type": "http",
"url": "https://mcp.atlassian.com/v1/mcp/authv2"
},
"aws-knowledge-mcp-server": {
"type": "http",
"url": "https://knowledge-mcp.global.api.aws"
},
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
},
"grep": {
"type": "http",
"url": "https://mcp.grep.app"
},
"schema-store": {
"type": "http",
"url": "https://mcp.schemastore.org"
}
}
Permissions · allow / ask / deny
{
"allow": [
"mcp__atlassian__atlassianUserInfo",
"mcp__atlassian__fetch",
"mcp__atlassian__getAccessibleAtlassianResources",
"mcp__atlassian__getConfluencePage",
"mcp__atlassian__getConfluencePageDescendants",
"mcp__atlassian__getConfluencePageFooterComments",
"mcp__atlassian__getConfluencePageInlineComments",
"mcp__atlassian__getConfluenceSpaces",
"mcp__atlassian__getIssueLinkTypes",
"mcp__atlassian__getJiraIssue",
"mcp__atlassian__getJiraIssueRemoteIssueLinks",
"mcp__atlassian__getJiraIssueTypeMetaWithFields",
"mcp__atlassian__getJiraProjectIssueTypesMetadata",
"mcp__atlassian__getPagesInConfluenceSpace",
"mcp__atlassian__getTransitionsForJiraIssue",
"mcp__atlassian__getVisibleJiraProjects",
"mcp__atlassian__lookupJiraAccountId",
"mcp__atlassian__search",
"mcp__atlassian__searchConfluenceUsingCql",
"mcp__atlassian__searchJiraIssuesUsingJql",
"mcp__aws-knowledge-mcp-server__aws___get_regional_availability",
"mcp__aws-knowledge-mcp-server__aws___list_regions",
"mcp__aws-knowledge-mcp-server__aws___read_documentation",
"mcp__aws-knowledge-mcp-server__aws___retrieve_skill",
"mcp__aws-knowledge-mcp-server__aws___search_documentation",
"mcp__context7__query-docs",
"mcp__context7__resolve-library-id",
"mcp__grep__searchGitHub",
"mcp__schema-store__getSchema",
"mcp__schema-store__listSchemas",
"mcp__schema-store__searchSchemas"
],
"ask": [],
"deny": [
"mcp__atlassian__addTeamworkGraphContext",
"mcp__atlassian__addWorklogToJiraIssue",
"mcp__atlassian__bitbucketDeployment",
"mcp__atlassian__bitbucketEnvironment",
"mcp__atlassian__bitbucketPipeline",
"mcp__atlassian__bitbucketPullRequest",
"mcp__atlassian__bitbucketRepoContent",
"mcp__atlassian__bitbucketRepository",
"mcp__atlassian__bitbucketUser",
"mcp__atlassian__bitbucketWorkspace",
"mcp__atlassian__createCompassComponent",
"mcp__atlassian__createCompassComponentRelationship",
"mcp__atlassian__createCompassCustomFieldDefinition",
"mcp__atlassian__createConfluenceFooterComment",
"mcp__atlassian__createConfluenceInlineComment",
"mcp__atlassian__getCompassComponent",
"mcp__atlassian__getCompassComponents",
"mcp__atlassian__getCompassComponentActivityEvents",
"mcp__atlassian__getCompassComponentLabels",
"mcp__atlassian__getCompassComponentTypes",
"mcp__atlassian__getCompassComponentsOwnedByMyTeams",
"mcp__atlassian__getCompassCustomFieldDefinitions",
"mcp__atlassian__getConfluenceCommentChildren",
"mcp__atlassian__getJsmOpsAlerts",
"mcp__atlassian__getJsmOpsScheduleInfo",
"mcp__atlassian__getJsmOpsTeamInfo",
"mcp__atlassian__getTeamworkGraphContext",
"mcp__atlassian__getTeamworkGraphObject",
"mcp__atlassian__updateJsmOpsAlert"
]
}
Configuration · Codex
Codex keeps registration and permissions in one file,
~/.codex/config.toml, instead of splitting them across two.
Same five servers, same URLs, same decisions: Claude's
allow list is Codex's enabled_tools, and its
deny list is disabled_tools. Every entry
matches server for server, so the permission tag on each tool above
holds under either agent.
default_tools_approval_mode reads backwards. Per the
Codex MCP reference,
approve means allow every tool without prompting; the mode
that stops and asks is prompt. So approve here
is Codex spelling what Claude spells allow.
Servers · ~/.codex/config.toml
[mcp_servers]
[mcp_servers.atlassian]
enabled = true
required = false
url = "https://mcp.atlassian.com/v1/mcp/authv2"
enabled_tools = [
"atlassianUserInfo",
"fetch",
"getAccessibleAtlassianResources",
"getConfluencePage",
"getConfluencePageDescendants",
"getConfluencePageFooterComments",
"getConfluencePageInlineComments",
"getConfluenceSpaces",
"getIssueLinkTypes",
"getJiraIssue",
"getJiraIssueRemoteIssueLinks",
"getJiraIssueTypeMetaWithFields",
"getJiraProjectIssueTypesMetadata",
"getPagesInConfluenceSpace",
"getTransitionsForJiraIssue",
"getVisibleJiraProjects",
"lookupJiraAccountId",
"search",
"searchConfluenceUsingCql",
"searchJiraIssuesUsingJql",
]
disabled_tools = [
"addTeamworkGraphContext",
"addWorklogToJiraIssue",
"bitbucketDeployment",
"bitbucketEnvironment",
"bitbucketPipeline",
"bitbucketPullRequest",
"bitbucketRepoContent",
"bitbucketRepository",
"bitbucketUser",
"bitbucketWorkspace",
"createCompassComponent",
"createCompassComponentRelationship",
"createCompassCustomFieldDefinition",
"createConfluenceFooterComment",
"createConfluenceInlineComment",
"getCompassComponent",
"getCompassComponentActivityEvents",
"getCompassComponentLabels",
"getCompassComponents",
"getCompassComponentsOwnedByMyTeams",
"getCompassComponentTypes",
"getCompassCustomFieldDefinitions",
"getConfluenceCommentChildren",
"getJsmOpsAlerts",
"getJsmOpsScheduleInfo",
"getJsmOpsTeamInfo",
"getTeamworkGraphContext",
"getTeamworkGraphObject",
"updateJsmOpsAlert",
]
default_tools_approval_mode = "approve"
[mcp_servers.aws-knowledge-mcp-server]
enabled = true
required = false
url = "https://knowledge-mcp.global.api.aws"
enabled_tools = [
"aws___get_regional_availability",
"aws___list_regions",
"aws___read_documentation",
"aws___retrieve_skill",
"aws___search_documentation",
]
default_tools_approval_mode = "approve"
[mcp_servers.context7]
enabled = true
required = false
url = "https://mcp.context7.com/mcp"
enabled_tools = [
"query-docs",
"resolve-library-id",
]
default_tools_approval_mode = "approve"
[mcp_servers.grep]
enabled = true
required = false
url = "https://mcp.grep.app"
enabled_tools = [
"searchGitHub",
]
default_tools_approval_mode = "approve"
[mcp_servers.schema-store]
enabled = true
required = false
url = "https://mcp.schemastore.org"
enabled_tools = [
"getSchema",
"listSchemas",
"searchSchemas"
]
default_tools_approval_mode = "approve"