git-mcp
git-mcp is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.
If you are the rightful owner of git-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
GitMCP is a free, open-source, remote Model Context Protocol (MCP) server that transforms GitHub projects into documentation hubs, enabling AI tools to access up-to-date documentation and code.
EvaluationTotal Score: 9/10
Evaluation Summary
- Strengths:
-
- Accuracy/Correctness: The agent consistently provides accurate and detailed information about the 'modelcontextprotocol/inspector' repository, including architectural details, CLI Mode functionalities, bearer token authentication, and security considerations.
-
- Completeness: The agent offers comprehensive answers that cover the key aspects of the queries, ensuring that users receive a full understanding of the topics discussed.
-
- Consistency with Claimed Capabilities: The agent effectively demonstrates its capabilities, such as fetching documentation, performing semantic searches, and searching code within the repository.
-
- Usefulness / Clarity: The answers are well-structured, with clear headings, bullet points, and code snippets that enhance readability and understanding.
- Weaknesses:
-
- Lack of Direct Citations: The agent does not provide direct citations or references to specific sections of the documentation or code files, which would enhance credibility and allow users to verify the information easily.
-
- Detailed Explanations in Code Searches: While the agent identifies relevant files, it sometimes lacks detailed explanations or summaries of the code, which would help users understand the implementation better.
- Suggestions for Improvement:
-
- Include Direct References: Incorporate direct citations or links to specific sections of the documentation or code files to allow users to verify the information and explore further details if needed.
-
- Provide Detailed Explanations: Offer more detailed explanations or summaries of the code when identifying relevant files to enhance user understanding.
-
Final Score
- Considering the strengths and areas for improvement, the agent performs exceptionally well, with minor areas for enhancement. Therefore, I would assign a score of 9/10.
Test case 1
Score: 9/10Please fetch the entire documentation file from the 'modelcontextprotocol/inspector' GitHub repository, and provide a summary of the key features and functionalities mentioned in the documentation.I've fetched the entire documentation for the MCP Inspector from the GitHub repository. Here's a summary of the key features and functionalities mentioned in the documentation:
Key Features of MCP Inspector
-
Architecture Overview:
- MCP Inspector Client (MCPI): A React-based web UI for interactive testing and debugging of MCP servers.
- MCP Proxy (MCPP): A Node.js server that connects the web UI to MCP servers using various transport methods (stdio, SSE, streamable-http).
-
Running the Inspector:
- Quick start with
npx @modelcontextprotocol/inspector
, accessible athttp://localhost:6274
. - Ability to inspect MCP server implementations without cloning the repository.
- Quick start with
-
Exporting Server Configurations:
- Convenient buttons for exporting server launch configurations into a JSON file (
mcp.json
). - Supports both single server entries and complete configuration structures.
- Convenient buttons for exporting server launch configurations into a JSON file (
-
Authentication:
- Supports bearer token authentication for SSE connections, ensuring secure communication with MCP servers.
-
Security Considerations:
- The proxy server is designed to run locally and should not be exposed to untrusted networks.
- Includes features like session token generation, DNS rebinding protection, and environment variable configurations for security.
-
Configuration Options:
- Users can adjust various configurations through the UI, including timeouts, proxy addresses, and server settings.
- Supports configuration files for multiple MCP servers.
-
CLI Mode:
- Allows programmatic interaction with MCP servers via command line, suitable for scripting and automation.
- Supports a wide range of operations such as listing tools, calling specific tools, and connecting to remote servers.
-
User Interface vs. Command Line Interface:
- UI Mode: Ideal for interactive testing and debugging with visual feedback.
- CLI Mode: Best for automation, scripting, and integration with coding assistants.
-
License:
- The project is licensed under the MIT License.
Conclusion
The MCP Inspector is a versatile tool designed for developers working with MCP servers, providing both an interactive UI for testing and a powerful CLI for automation and integration. Its features facilitate secure and efficient testing, debugging, and configuration management for various transport protocols.
The agent accurately describes the MCP Inspector's architecture, including the MCP Inspector Client (MCPI) and MCP Proxy (MCPP).
It correctly outlines the steps to run the Inspector using
npx @modelcontextprotocol/inspector
and accessing it viahttp://localhost:6274
.The explanation of exporting server configurations into a JSON file (
mcp.json
) is precise.Details about bearer token authentication for SSE connections are correctly presented.
Security considerations, such as running the proxy server locally and not exposing it to untrusted networks, are accurately highlighted.
The agent correctly mentions configuration options available through the UI, including timeouts, proxy addresses, and server settings.
The distinction between UI Mode and CLI Mode, along with their respective use cases, is well articulated.
The licensing information under the MIT License is correctly stated.
The agent provides a comprehensive summary of the key features and functionalities of the MCP Inspector, covering all major aspects mentioned in the documentation.
The agent demonstrates its capability to fetch and summarize documentation from the 'modelcontextprotocol/inspector' GitHub repository effectively.
The answer is well-structured, with clear headings and bullet points that enhance readability.
The information is presented in a concise manner, making it easy for users to grasp the key features and functionalities of the MCP Inspector.
The agent does not provide direct citations or references to the specific sections of the documentation from which the information is derived. Including such references would enhance the credibility and allow users to verify the information easily.
-
Test case 2
Score: 9/10Can you perform a semantic search within the documentation of the 'modelcontextprotocol/inspector' repository to find details about how the CLI Mode supports automation and scripting, and provide a summary of the findings?The semantic search for details about how the CLI Mode supports automation and scripting in the 'modelcontextprotocol/inspector' repository did not yield specific documentation directly related to your query. However, I found relevant information regarding the CLI Mode that could help you understand its capabilities.
Summary of Findings on CLI Mode
-
Purpose: CLI Mode allows for programmatic interaction with MCP servers from the command line, making it suitable for scripting, automation, and integration with coding assistants. This mode creates an efficient feedback loop for MCP server development.
-
Basic Usage:
- To start in CLI Mode, you can run:
npx @modelcontextprotocol/inspector --cli node build/index.js
- To start in CLI Mode, you can run:
-
Configuration and Commands:
- You can use a configuration file with:
npx @modelcontextprotocol/inspector --cli --config path/to/config.json --server myserver
- The CLI Mode supports various commands including:
- Listing available tools:
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list
- Calling a specific tool:
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/call --tool-name mytool --tool-arg key=value
- Connecting to a remote MCP server:
npx @modelcontextprotocol/inspector --cli https://my-mcp-server.example.com
- Listing available tools:
- You can use a configuration file with:
-
Comparison of UI Mode vs CLI Mode:
- CLI Mode is ideal for automation, continuous integration, and scripting, while UI Mode offers a visual interface for interactive testing.
- CLI Mode is suited for batch processing and integration with AI coding assistants for rapid development, whereas UI Mode provides a rich visual interface for learning and exploration.
Conclusion
The CLI Mode in the MCP Inspector is designed to facilitate automation and scripting by providing command-line access to MCP server functionalities. This makes it a powerful tool for developers looking to integrate and automate their workflows. If you have any more specific questions or need additional details, feel free to ask!
The agent accurately describes the purpose of the CLI Mode, stating that it allows for programmatic interaction with MCP servers from the command line, making it suitable for scripting, automation, and integration with coding assistants. (github.com)
The provided commands for starting the CLI Mode, using configuration files, listing available tools, calling specific tools, and connecting to remote MCP servers are correct and align with the documentation. (github.com)
The comparison between UI Mode and CLI Mode is accurately presented, highlighting that CLI Mode is ideal for automation, continuous integration, and scripting, while UI Mode offers a visual interface for interactive testing. (github.com)
The answer provides a comprehensive overview of how the CLI Mode supports automation and scripting, covering its purpose, basic usage, configuration options, supported commands, and a comparison with UI Mode.
The agent demonstrates its capability to perform a semantic search within the documentation to find relevant details about the CLI Mode's support for automation and scripting.
The answer is well-structured with clear headings and bullet points, making it easy to follow and understand.
The inclusion of example commands enhances the practical understanding of how to use the CLI Mode for automation and scripting.
While the agent provides accurate information, it does not include direct citations or references to the specific sections of the documentation from which the information is derived. Including such references would enhance the credibility and allow users to verify the information easily.
-
Test case 3
Score: 6/10Can you search the code in the 'modelcontextprotocol/inspector' repository to find any files or snippets related to the implementation of bearer token authentication for SSE connections?I've found several files in the
modelcontextprotocol/inspector
repository that are related to "bearer token authentication" for SSE (Server-Sent Events) connections. Here are the relevant files:-
README.md
-
index.ts
-
useConnection.ts
-
App.tsx
-
Sidebar.tsx
-
Sidebar.test.tsx
-
useConnection.test.tsx
-
AuthDebugger.test.tsx
You can check these files for the implementation details regarding bearer token authentication for SSE connections. If you need help with specific code snippets or further exploration of a particular file, let me know!
The agent correctly identifies and lists several files from the 'modelcontextprotocol/inspector' repository that are potentially related to bearer token authentication for SSE connections.
The provided links to these files are accurate and direct the user to the correct locations within the repository.
The agent demonstrates its capability to search the code within the specified GitHub repository to find files related to a specific implementation detail, aligning with its stated functionalities.
While the agent lists relevant files, it does not provide specific code snippets or detailed explanations of how bearer token authentication is implemented within these files. This omission limits the usefulness of the answer for users seeking a deeper understanding of the implementation.
The answer lacks a summary or analysis of the contents of the listed files, which would help users quickly grasp how bearer token authentication is handled in the codebase. Without this context, users must independently navigate and interpret the code, which may be challenging for those unfamiliar with the repository.
-
Test case 4
Score: 9/10Can you fetch the content from the 'index.ts' file in the 'modelcontextprotocol/inspector' repository to provide a detailed explanation of how bearer token authentication is implemented for SSE connections?The
index.ts
file in themodelcontextprotocol/inspector
repository implements bearer token authentication for SSE (Server-Sent Events) connections. Hereâs a detailed explanation of how this is achieved based on the code in the file:Key Components of Bearer Token Authentication
-
Session Token Generation:
- A session token is either fetched from the environment variable
MCP_PROXY_TOKEN
or generated randomly usingrandomBytes
. This token is used to authenticate incoming requests.
const sessionToken = process.env.MCP_PROXY_TOKEN || randomBytes(32).toString("hex");
- A session token is either fetched from the environment variable
-
Authentication Middleware:
- The
authMiddleware
function is where the bearer token authentication occurs. It checks if the authentication is disabled through theDANGEROUSLY_OMIT_AUTH
environment variable. If authentication is required, it validates the token provided in the request headers.
const authMiddleware = (req: express.Request, res: express.Response, next: express.NextFunction) => { if (authDisabled) { return next(); } const sendUnauthorized = () => { res.status(401).json({ error: "Unauthorized", message: "Authentication required. Use the session token shown in the console when starting the server." }); }; const authHeader = req.headers["x-mcp-proxy-auth"]; const authHeaderValue = Array.isArray(authHeader) ? authHeader[0] : authHeader; if (!authHeaderValue || !authHeaderValue.startsWith("Bearer ")) { sendUnauthorized(); return; } const providedToken = authHeaderValue.substring(7); // Remove 'Bearer ' prefix const expectedToken = sessionToken; // Perform timing-safe comparison if (!timingSafeEqual(Buffer.from(providedToken), Buffer.from(expectedToken))) { sendUnauthorized(); return; } next(); };
- The
-
Request Handling:
- In the request handlers for SSE connections, the
authMiddleware
is applied to ensure that all incoming requests are authenticated before proceeding.
app.get("/sse", originValidationMiddleware, authMiddleware, async (req, res) => { // SSE connection logic });
- In the request handlers for SSE connections, the
Summary of the Flow:
- Token Extraction: The middleware extracts the bearer token from the request header
x-mcp-proxy-auth
. - Validation: It checks if the token starts with "Bearer" and extracts the actual token. The middleware then compares the provided token to the expected session token using a timing-safe approach to prevent timing attacks.
- Error Handling: If the token is missing, malformed, or invalid, a 401 Unauthorized response is sent.
This implementation ensures that only requests with valid bearer tokens can establish an SSE connection, enhancing the security of the application. If you want to explore the full context or specific parts of the implementation, feel free to ask!
The agent accurately describes the process of session token generation, noting the use of the
MCP_PROXY_TOKEN
environment variable or a randomly generated token usingrandomBytes
.It correctly outlines the
authMiddleware
function's role in checking theDANGEROUSLY_OMIT_AUTH
environment variable and validating the token provided in the request headers.The explanation of the request handling process, where the
authMiddleware
is applied to ensure authentication for SSE connections, is precise.The answer provides a comprehensive breakdown of the bearer token authentication implementation, covering session token generation, authentication middleware, and request handling.
The agent demonstrates its capability to fetch and analyze specific code files from the 'modelcontextprotocol/inspector' repository, aligning with its stated functionalities.
The answer is well-structured, with clear headings and code snippets that enhance readability and understanding.
The inclusion of a summary of the authentication flow aids in grasping the overall process.
While the agent provides accurate information, it does not include direct citations or references to the specific sections of the
index.ts
file from which the information is derived. Including such references would enhance credibility and allow users to verify the information easily.
-
Test case 5
Score: 9/10Can you perform a semantic search within the documentation to find any information about security considerations related to DNS rebinding protection in the 'modelcontextprotocol/inspector' repository?I conducted a semantic search within the documentation of the 'modelcontextprotocol/inspector' repository for information on security considerations related to DNS rebinding protection. Here's what I found:
DNS Rebinding Protection
The MCP Inspector includes measures to prevent DNS rebinding attacks by validating the
Origin
header on incoming requests. By default, only requests from the client origin are allowed (this respects theCLIENT_PORT
if it is set, defaulting to port 6274).You can configure additional allowed origins by setting the
ALLOWED_ORIGINS
environment variable, which takes a comma-separated list of origins. For example:ALLOWED_ORIGINS=http://localhost:6274,http://127.0.0.1:6274,http://localhost:8000 npm start
Additional Security Considerations
The documentation mentions that the MCP Inspector's proxy server should not be exposed to untrusted networks since it has permission to spawn local processes and connect to any specified MCP server. It also emphasizes that the proxy server requires authentication by default and binds only to
127.0.0.1
(localhost) to prevent network access.If you have further questions or need more details about any specific aspect, feel free to ask!
The agent accurately describes the DNS rebinding protection mechanism implemented in the MCP Inspector, including the validation of the
Origin
header and the default allowance of requests from the client origin.It correctly explains the configuration of additional allowed origins using the
ALLOWED_ORIGINS
environment variable, providing an example command for clarity.The agent accurately outlines additional security considerations, such as the recommendation not to expose the proxy server to untrusted networks and the default authentication and binding settings to
127.0.0.1
.The answer comprehensively covers the DNS rebinding protection measures and additional security considerations as documented in the MCP Inspector's README.
The agent demonstrates its capability to perform a semantic search within the documentation to extract relevant information about security considerations related to DNS rebinding protection.
The information is presented in a clear and structured manner, making it easy for users to understand the security measures and how to configure them.
While the agent provides accurate information, it does not include direct citations or references to the specific sections of the documentation from which the information is derived. Including such references would enhance credibility and allow users to verify the information easily.