Skip to main content
Glama
README.md3.17 kB
# Model Context Protocol (MCP) Learning Notes ## Video Reference - **Source**: [Web Dev Simplified YouTube Video](https://youtu.be/ZoZxQwp1PiM?si=F2Wb-wrBPOkBmKkz) - **Credits**: Web Dev Simplified (YouTube channel) ## What is MCP? Model Context Protocol (MCP) is a protocol that defines how a client (such as an LLM) can communicate and use tools and resources defined at the server level. It implements a client-server architecture with the following components: - Tools - Resources - Prompts - Samplings ## Documentation & Resources - Official documentation: [modelcontextprotocol.io/introduction](https://modelcontextprotocol.io/introduction) - Includes starter projects in multiple languages for MCP client and server implementation ## Implementation Details ### Server Setup The `src/server.ts` file contains the code for creating an MCP server and defining tools, resources, and prompts. ### Testing the Implementation 1. Build the server: ```bash npm run server:build ``` 2. Add to VS Code using the "Add MCP server" command 3. Access server functionality in the Copilot chat UI 4. Use "#" followed by tool name to access implemented tools ![Viewing the implemented tools](image.png) ### Client Implementation Note: to use the query and prompts from the client you will need a gemini ai api key, you can add this in the .env file The `src/client.ts` file provides a CLI client for interacting with the MCP server. It connects to the server, lists available tools, resources, and prompts, and allows you to: - Query the LLM directly - Run tools (with parameter input) - Access resources (with dynamic URI parameters) - Use prompts (with argument input) #### How it works 1. Connects to the MCP server using a transport layer. 2. Fetches available tools, resources, prompts, and resource templates. 3. Presents a menu for the user to select an action: Query, Tools, Resources, or Prompts. 4. Handles each action: - **Query**: Sends a prompt to the LLM and optionally invokes tools. - **Tools**: Lets you select and run a tool, entering parameters as needed. - **Resources**: Lets you select a resource or template, entering URI parameters if required, and displays the result. - **Prompts**: Lets you select a prompt, enter arguments, and view the generated output. 5. For prompts, you can choose to run the generated text through the LLM for further results. #### Example Usage When you run the client, you'll see a menu: ``` What would you like to do ❯ Query Tools Resources Prompts ``` Selecting an option will guide you through the available features interactively. #### Resources - **users**: Retrieves all users from the JSON file - **user-details**: Retrieves user details by ID #### Tools - **create-user**: Creates a new user with the following parameters: - username - email - address - age - phone number - **create-random-user**: Generates and creates a random user #### Prompts - **generate-fake-user**: Prompt with fixed fields for generating fake user data #### Sampling - **create-random-user**: This uses sampling i.e. calling requests on the LLM or clientto generate something.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SufyaanKhateeb/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server