A side-by-side look at the Git and HAL MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Git for other tools and integrations work as a local process; choose HAL for developer tools as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Git when
You need dedicated capabilities in the Other Tools and Integrations domain.
You prefer a local stdio subprocess transport.
Its auth model fits you: No auth required.
You want tools like create_entities, create_relations, add_observations.
create_entitiesCreate multiple new entities in the knowledge graph
create_relationsCreate multiple new relations between entities in the knowledge graph. Relations should be in active voice
add_observationsAdd new observations to existing entities in the knowledge graph
delete_entitiesDelete multiple entities and their associated relations from the knowledge graph
delete_observationsDelete specific observations from entities in the knowledge graph
delete_relationsDelete multiple relations from the knowledge graph
read_graphRead the entire knowledge graph
search_nodesSearch for nodes in the knowledge graph based on a query
open_nodesOpen specific nodes in the knowledge graph by their names
HAL tools 8
http-getMake an HTTP GET request to a specified URL. Supports secret substitution using {secrets.key} syntax where 'key' corresponds to HAL_SECRET_KEY environment variables.
http-postMake an HTTP POST request to a specified URL with optional body and headers. Supports secret substitution using {secrets.key} syntax in URL, headers, and body where 'key' corresponds to HAL_SECRET_KEY environment variables.
http-putMake an HTTP PUT request to a specified URL with optional body and headers. Supports secret substitution using {secrets.key} syntax in URL, headers, and body where 'key' corresponds to HAL_SECRET_KEY environment variables.
http-patchMake an HTTP PATCH request to a specified URL with optional body and headers. Supports secret substitution using {secrets.key} syntax in URL, headers, and body where 'key' corresponds to HAL_SECRET_KEY environment variables.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Git is categorized under Other Tools and Integrations and uses a local stdio subprocess. HAL belongs to Developer Tools and uses a local stdio subprocess. Pick Git for other tools and integrations work and HAL for developer tools.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Git is listed as free. Auth: no auth required. HAL is listed as free. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add git and hal as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Git has a quality signal of 89/100 (Excellent) with 39 views, 0 installs and 91,289 GitHub stars. HAL has 61/100 (Good) with 2 views, 0 installs and 38 GitHub stars.
http-deleteMake an HTTP DELETE request to a specified URL with optional headers. Supports secret substitution using {secrets.key} syntax in URL and headers where 'key' corresponds to HAL_SECRET_KEY environment variables.
http-headMake an HTTP HEAD request to a specified URL with optional headers (returns only headers, no body). Supports secret substitution using {secrets.key} syntax in URL and headers where 'key' corresponds to HAL_SECRET_KEY environment variables.
http-optionsMake an HTTP OPTIONS request to a specified URL to check available methods and headers. Supports secret substitution using {secrets.key} syntax in URL and headers where 'key' corresponds to HAL_SECRET_KEY environment variables.
list-secretsGet a list of available secret keys that can be used with {secrets.key} syntax. Only shows the key names, never the actual secret values.