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
deny list is Codex's disabled_tools, entry for
entry. Claude's allow list is Codex's
enabled_tools on four of the five servers. The atlassian
server enables the write tools as well, and its approval mode gates
them. 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. The atlassian
server uses a third mode, writes. It prompts for every tool
that the server does not mark read-only. That is Codex spelling what
Claude spells ask.
Servers · ~/.codex/config.toml
[mcp_servers]
[mcp_servers.atlassian]
enabled = true
required = false
url = "https://mcp.atlassian.com/v1/mcp/authv2"
enabled_tools = [
"addCommentToJiraIssue",
"atlassianUserInfo",
"createConfluencePage",
"createIssueLink",
"createJiraIssue",
"editJiraIssue",
"fetch",
"getAccessibleAtlassianResources",
"getConfluencePage",
"getConfluencePageDescendants",
"getConfluencePageFooterComments",
"getConfluencePageInlineComments",
"getConfluenceSpaces",
"getIssueLinkTypes",
"getJiraIssue",
"getJiraIssueRemoteIssueLinks",
"getJiraIssueTypeMetaWithFields",
"getJiraProjectIssueTypesMetadata",
"getPagesInConfluenceSpace",
"getTransitionsForJiraIssue",
"getVisibleJiraProjects",
"lookupJiraAccountId",
"search",
"searchConfluenceUsingCql",
"searchJiraIssuesUsingJql",
"transitionJiraIssue",
"updateConfluencePage",
]
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 = "writes"
[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"