Discover Awesome MCP Servers
Extend your agent with 84,516 capabilities via MCP servers.
- All84,516
- Developer Tools3,867
- Search1,714
- Research & Data1,557
- AI Integration Systems229
- Cloud Platforms219
- Data & App Analysis181
- Database Interaction177
- Remote Shell Execution165
- Browser Automation147
- Databases145
- Communication137
- AI Content Generation127
- OS Automation120
- Programming Docs Access109
- Content Fetching108
- Note Taking97
- File Systems96
- Version Control93
- Finance91
- Knowledge & Memory90
- Monitoring79
- Security71
- Image & Video Processing69
- Digital Note Management66
- AI Memory Systems62
- Advanced AI Reasoning59
- Git Management Tools58
- Cloud Storage51
- Entertainment & Media43
- Virtualization42
- Location Services35
- Web Automation & Stealth32
- Media Content Processing32
- Calendar Management26
- Ecommerce & Retail18
- Speech Processing18
- Customer Data Platforms16
- Travel & Transportation14
- Education & Learning Tools13
- Home Automation & IoT13
- Web Search Integration12
- Health & Wellness10
- Customer Support10
- Marketing9
- Games & Gamification8
- Google Cloud Integrations7
- Art & Culture4
- Language Translation3
- Legal & Compliance2
GiljoAI MCP
A passive context server that stores product knowledge, generates structured prompts, and coordinates multi-agent workflows via the Model Context Protocol, enabling AI coding tools to share a full picture of the product.
Tribunal TJSC: Processo
Enables consultation of TJSC court processes from official source through a read-only MCP tool.
Untappd MCP Server using Azure Functions
Okay, here's an example of a minimal, complete, and practical (MCP) Azure Function written in F# that demonstrates a simple HTTP trigger. I'll break it down with explanations. ```fsharp namespace MyAzureFunction open Microsoft.AspNetCore.Mvc open Microsoft.Azure.WebJobs open Microsoft.Azure.WebJobs.Extensions.Http open Microsoft.AspNetCore.Http open Microsoft.Extensions.Logging module HelloFunction = [<FunctionName("Hello")>] let Run ( [<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)>] req: HttpRequest, log: ILogger ) = log.LogInformation "C# HTTP trigger function processed a request." let name = match req.Query.["name"] with | ValueSome n -> n | ValueNone -> match System.IO.StreamReader(req.Body).ReadToEndAsync().Result with | body when not (String.IsNullOrEmpty body) -> body | _ -> "Azure Function" let responseMessage = sprintf "Hello, %s. This HTTP triggered function executed successfully." name ActionResult(OkObjectResult responseMessage) ``` **Explanation:** 1. **Namespace:** `namespace MyAzureFunction` This organizes your code. Choose a meaningful name. 2. **`open` Statements:** These bring in the necessary libraries. Crucially: * `Microsoft.AspNetCore.Mvc`: For `IActionResult` (the return type) and `OkObjectResult`. * `Microsoft.Azure.WebJobs`: The core Azure Functions library. * `Microsoft.Azure.WebJobs.Extensions.Http`: For HTTP trigger functionality. * `Microsoft.AspNetCore.Http`: For the `HttpRequest` object. * `Microsoft.Extensions.Logging`: For logging. 3. **Module:** `module HelloFunction` F# code is typically organized into modules. 4. **`[<FunctionName("Hello")>]`:** This *attribute* is **essential**. It tells Azure Functions the name of your function. This is the name you'll use in the Azure portal or when deploying. Change `"Hello"` to whatever you want to call your function. 5. **`let Run (...) = ...`:** This defines the function itself. `Run` is the standard name for the entry point. 6. **Function Parameters:** * `[<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)>] req: HttpRequest`: This is the HTTP trigger. * `[<HttpTrigger(...)]`: This attribute configures the trigger. * `AuthorizationLevel.Anonymous`: Means anyone can call the function without authentication. Other options are `Function` (requires a function key) and `Admin` (requires an admin key). * `"get", "post"`: Specifies that the function will respond to both GET and POST requests. You can add other HTTP methods like `"put"`, `"delete"`, etc. * `Route = null`: This means the function is triggered directly by the function name. If you set `Route = "myroute/{id}"`, the function would be triggered by a URL like `/api/myroute/123`. `null` is the simplest option for a basic example. * `req: HttpRequest`: This is the HTTP request object. It contains information about the request, such as headers, query parameters, and the request body. * `log: ILogger`: This is the logger. Use it to write information to the Azure Functions logs. Very helpful for debugging. 7. **Function Body:** * `log.LogInformation "C# HTTP trigger function processed a request."`: Logs a message to the console. This will appear in the Azure Functions logs. * **Name Extraction:** This part tries to get the `name` parameter from either the query string or the request body. * `req.Query.["name"]`: Tries to get the `name` parameter from the query string (e.g., `?name=John`). `req.Query` is a dictionary-like structure. * `ValueSome n -> n`: If the `name` parameter is found in the query string, its value is assigned to `n`. * `ValueNone -> ...`: If the `name` parameter is *not* found in the query string, the code proceeds to read the request body. * `System.IO.StreamReader(req.Body).ReadToEndAsync().Result`: Reads the entire request body as a string. **Important:** Using `.Result` is generally discouraged in asynchronous code because it can lead to deadlocks. However, in the context of an Azure Function, it's often acceptable for simplicity, *especially* in F#. For more complex scenarios, you'd want to use `async` and `await` properly. * `body when not (String.IsNullOrEmpty body) -> body`: If the request body is not empty, its content is used as the `name`. * `_ -> "Azure Function"`: If neither the query string nor the request body contains a `name`, the default value "Azure Function" is used. * `let responseMessage = sprintf "Hello, %s. This HTTP triggered function executed successfully." name`: Creates the response message using `sprintf` (string formatting). * `ActionResult(OkObjectResult responseMessage)`: Creates an `OkObjectResult` (an HTTP 200 OK response) with the response message as the body. The `ActionResult` type is used to wrap the result. This is how you return a response from an Azure Function. **How to Use It:** 1. **Create an Azure Functions Project:** In Visual Studio or VS Code with the Azure Functions extension, create a new F# Azure Functions project. Choose the "HTTP trigger" template. 2. **Replace the Code:** Replace the contents of the generated `.fs` file with the code above. 3. **Run Locally:** Run the function locally. The Azure Functions runtime will start and tell you the URL to access your function. 4. **Test:** * **GET Request (with query parameter):** Open a browser and go to `http://localhost:7071/api/Hello?name=YourName` (replace `7071` with the port your function is running on). You should see "Hello, YourName. This HTTP triggered function executed successfully." * **GET Request (without query parameter):** Go to `http://localhost:7071/api/Hello`. You should see "Hello, Azure Function. This HTTP triggered function executed successfully." * **POST Request (with body):** Use a tool like `curl` or Postman to send a POST request to `http://localhost:7071/api/Hello` with a request body containing the name (e.g., `"MyName"`). The response should be "Hello, MyName. This HTTP triggered function executed successfully." 5. **Deploy to Azure:** Deploy your function to Azure using Visual Studio, VS Code, or the Azure CLI. **Key Improvements and Considerations:** * **Error Handling:** This example lacks proper error handling. In a real-world function, you should handle exceptions and return appropriate error responses (e.g., `BadRequestObjectResult`, `InternalServerErrorResult`). * **Asynchronous Operations:** For more complex operations (especially I/O), use `async` and `await` to avoid blocking the thread. This is crucial for scalability. The `.Result` call is a shortcut for this example, but should be avoided in production code where possible. * **Dependency Injection:** For larger functions, use dependency injection to manage dependencies (e.g., configuration, database connections). Azure Functions supports dependency injection. * **Configuration:** Use the Azure Functions configuration system to store settings (e.g., connection strings, API keys). * **Logging:** Use the `ILogger` interface extensively to log information, warnings, and errors. This is essential for debugging and monitoring. * **Idempotency:** If your function performs operations that should only be executed once (e.g., processing payments), ensure that it's idempotent. * **Testing:** Write unit tests to verify the logic of your function. **Chinese Translation of the Explanation:** **F# 中的一个最小、完整、实用的 (MCP) Azure 函数示例** 这是一个用 F# 编写的最小、完整、实用的 (MCP) Azure 函数示例,它演示了一个简单的 HTTP 触发器。 我将分解并解释它。 ```fsharp namespace MyAzureFunction open Microsoft.AspNetCore.Mvc open Microsoft.Azure.WebJobs open Microsoft.Azure.WebJobs.Extensions.Http open Microsoft.AspNetCore.Http open Microsoft.Extensions.Logging module HelloFunction = [<FunctionName("Hello")>] let Run ( [<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)>] req: HttpRequest, log: ILogger ) = log.LogInformation "C# HTTP 触发器函数处理了一个请求。" let name = match req.Query.["name"] with | ValueSome n -> n | ValueNone -> match System.IO.StreamReader(req.Body).ReadToEndAsync().Result with | body when not (String.IsNullOrEmpty body) -> body | _ -> "Azure Function" let responseMessage = sprintf "你好,%s。 此 HTTP 触发函数已成功执行。" name ActionResult(OkObjectResult responseMessage) ``` **解释:** 1. **命名空间:** `namespace MyAzureFunction` 这组织你的代码。 选择一个有意义的名称。 2. **`open` 语句:** 这些引入了必要的库。 至关重要的是: * `Microsoft.AspNetCore.Mvc`:用于 `IActionResult`(返回类型)和 `OkObjectResult`。 * `Microsoft.Azure.WebJobs`:核心 Azure Functions 库。 * `Microsoft.Azure.WebJobs.Extensions.Http`:用于 HTTP 触发器功能。 * `Microsoft.AspNetCore.Http`:用于 `HttpRequest` 对象。 * `Microsoft.Extensions.Logging`:用于日志记录。 3. **模块:** `module HelloFunction` F# 代码通常组织成模块。 4. **`[<FunctionName("Hello")>]`:** 这个*属性*是**必不可少的**。 它告诉 Azure Functions 你的函数的名称。 这是你将在 Azure 门户中使用或部署时使用的名称。 将 `"Hello"` 更改为你想要调用的任何名称。 5. **`let Run (...) = ...`:** 这定义了函数本身。 `Run` 是入口点的标准名称。 6. **函数参数:** * `[<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)>] req: HttpRequest`:这是 HTTP 触发器。 * `[<HttpTrigger(...)]`:此属性配置触发器。 * `AuthorizationLevel.Anonymous`:表示任何人都可以调用该函数而无需身份验证。 其他选项是 `Function`(需要函数密钥)和 `Admin`(需要管理员密钥)。 * `“get”, “post”`:指定该函数将响应 GET 和 POST 请求。 你可以添加其他 HTTP 方法,例如 `"put"`、`"delete"` 等。 * `Route = null`:这意味着该函数由函数名称直接触发。 如果你设置 `Route = "myroute/{id}"`,则该函数将由类似 `/api/myroute/123` 的 URL 触发。 `null` 是基本示例的最简单选项。 * `req: HttpRequest`:这是 HTTP 请求对象。 它包含有关请求的信息,例如标头、查询参数和请求正文。 * `log: ILogger`:这是记录器。 使用它将信息写入 Azure Functions 日志。 对调试非常有帮助。 7. **函数体:** * `log.LogInformation "C# HTTP 触发器函数处理了一个请求。"`:将消息记录到控制台。 这将出现在 Azure Functions 日志中。 * **名称提取:** 这部分尝试从查询字符串或请求正文中获取 `name` 参数。 * `req.Query.["name"]`:尝试从查询字符串中获取 `name` 参数(例如,`?name=John`)。 `req.Query` 是一个类似字典的结构。 * `ValueSome n -> n`:如果在查询字符串中找到 `name` 参数,则将其值分配给 `n`。 * `ValueNone -> ...`:如果在查询字符串中*未*找到 `name` 参数,则代码继续读取请求正文。 * `System.IO.StreamReader(req.Body).ReadToEndAsync().Result`:将整个请求正文读取为字符串。 **重要提示:** 通常不鼓励在异步代码中使用 `.Result`,因为它可能导致死锁。 但是,在 Azure Function 的上下文中,为了简单起见,通常是可以接受的,*尤其是在 F# 中*。 对于更复杂的场景,你将需要正确使用 `async` 和 `await`。 * `body when not (String.IsNullOrEmpty body) -> body`:如果请求正文不为空,则其内容将用作 `name`。 * `_ -> "Azure Function"`:如果查询字符串和请求正文都不包含 `name`,则使用默认值 "Azure Function"。 * `let responseMessage = sprintf "你好,%s。 此 HTTP 触发函数已成功执行。" name`:使用 `sprintf`(字符串格式化)创建响应消息。 * `ActionResult(OkObjectResult responseMessage)`:创建一个 `OkObjectResult`(HTTP 200 OK 响应),并将响应消息作为正文。 `ActionResult` 类型用于包装结果。 这是你从 Azure Function 返回响应的方式。 **如何使用它:** 1. **创建 Azure Functions 项目:** 在 Visual Studio 或带有 Azure Functions 扩展的 VS Code 中,创建一个新的 F# Azure Functions 项目。 选择“HTTP 触发器”模板。 2. **替换代码:** 将生成的 `.fs` 文件的内容替换为上面的代码。 3. **在本地运行:** 在本地运行该函数。 Azure Functions 运行时将启动并告诉你访问你的函数的 URL。 4. **测试:** * **GET 请求(带查询参数):** 打开浏览器并转到 `http://localhost:7071/api/Hello?name=YourName`(将 `7071` 替换为你的函数正在运行的端口)。 你应该看到“你好,YourName。 此 HTTP 触发函数已成功执行。” * **GET 请求(不带查询参数):** 转到 `http://localhost:7071/api/Hello`。 你应该看到“你好,Azure Function。 此 HTTP 触发函数已成功执行。” * **POST 请求(带正文):** 使用 `curl` 或 Postman 等工具向 `http://localhost:7071/api/Hello` 发送 POST 请求,请求正文包含名称(例如,`"MyName"`)。 响应应为“你好,MyName。 此 HTTP 触发函数已成功执行。” 5. **部署到 Azure:** 使用 Visual Studio、VS Code 或 Azure CLI 将你的函数部署到 Azure。 **关键改进和注意事项:** * **错误处理:** 此示例缺少适当的错误处理。 在实际函数中,你应该处理异常并返回适当的错误响应(例如,`BadRequestObjectResult`、`InternalServerErrorResult`)。 * **异步操作:** 对于更复杂的操作(尤其是 I/O),请使用 `async` 和 `await` 以避免阻塞线程。 这对于可伸缩性至关重要。 `.Result` 调用是此示例的快捷方式,但在可能的情况下应避免在生产代码中使用。 * **依赖注入:** 对于更大的函数,请使用依赖注入来管理依赖项(例如,配置、数据库连接)。 Azure Functions 支持依赖注入。 * **配置:** 使用 Azure Functions 配置系统来存储设置(例如,连接字符串、API 密钥)。 * **日志记录:** 广泛使用 `ILogger` 接口来记录信息、警告和错误。 这对于调试和监控至关重要。 * **幂等性:** 如果你的函数执行应仅执行一次的操作(例如,处理付款),请确保它是幂等的。 * **测试:** 编写单元测试以验证你的函数的逻辑。 This should give you a solid starting point for building Azure Functions in F#. Let me know if you have any more questions.
MyDriverParis MCP Server
Enables booking premium private chauffeur transfers in Paris and across Europe directly from AI agents. Provides tools to list vehicles, get quotes, book rides, and retrieve service information.
fittok
An MCP server that filters and compresses context by 80-90% before sending to an LLM, using code knowledge graphs and compression.
Azure Assistant MCP
Enables natural language exploration of Azure environments by generating and executing KQL queries against Azure Resource Graph. Supports multi-tenant configurations, subscription scoping, and provides direct access to Azure resource information through conversational interactions.
Wedding Invitation Builder MCP
Enables creating and customizing mobile wedding invitations through natural language, with support for multiple designs, RSVP, maps, gallery, and share tokens.
kalvium-livebooks
A read-only MCP server that lets you browse Kalvium Livebooks using your existing browser session, listing livebooks and lessons and retrieving lesson content as Markdown.
substack-publisher-mcp
A tool that connects to Substack's official Publisher API to access posts, newsletters, analytics, and subscribers, compatible with MCP clients like Claude and Cursor.
SudoMock
Product mockup rendering API for e-commerce and print-on-demand. Upload Photoshop PSD templates, render photorealistic mockups by placing your designs onto smart object layers. 9 tools including AI-powered render (no PSD needed), template management, and account info. Supports remote HTTP (OAuth) and local stdio (npx) transports.
dero-mcp-server
Read-only MCP server for querying DERO blockchain — blocks, smart contracts, transactions, network info. Privacy-first, runs locally.
MCP Server
A Django-based implementation of the Model Context Protocol (MCP) for managing political preferences and visions for the future.
memsearch-mcp
Provides hybrid vector+BM25+reranker search and index-refresh tools over agent memory stored in markdown files, enabling forge agents to query memory across session, working, and docs tiers without direct file access.
WooCommerce MCP Server
Enables AI agents to manage WooCommerce stores, including products, orders, customers, categories, coupons, attributes, variations, order notes, refunds, reports, payment gateways, meta data, reviews, settings, data, posts, and system status through natural language.
TouchDesigner MCP
Enables control of a running TouchDesigner instance via MCP protocol, providing tools to manage operators, parameters, and project state through a local HTTP bridge.
Jira MCP
MCP server for Jira ticket context via REST API — read issues, search, post comments with @mentions.
GitHub Stars MCP Server
Enables natural language search and querying of your GitHub starred repositories.
remote-mcp-server-authless
Deploy a remote MCP server on Cloudflare Workers without authentication. Supports custom tools and can connect to AI Playground and Claude Desktop via SSE.
@compute-finance/mcp
Provides real-time AI compute pricing and cost analysis across LLM providers, enabling session cost tracking, model price comparisons, and historical data queries.
Google Web Search MCP Server
Enables Google web search via MCP, compatible with gemini-cli's google_web_search tool.
SkillsGuard
Static security scanner for AI agent skill packages that detects malicious SKILL.md files and bundled scripts before they run.
ui-lift
Imports public websites and extracts UI components and design tokens, making them available via MCP for AI coding agents to reuse in implementations.
Zefix MCP
Enables AI assistants to search the Swiss Central Business Name Index (Zefix) for companies by name or UID, with optional filters, and retrieve full company details including address, legal form, history, and representatives.
Weather MCP Server
Provides real-time weather information for Brazilian cities, built with domain-driven design and SOLID principles.
Seo Api2 MCP Server
Provides a comprehensive suite of SEO and web utility tools for domain analysis, keyword tracking, SERP data, and technical site audits. It enables users to perform various tasks such as checking domain age, WHOIS information, and website technology stacks.
RPGMakerUltimate-MCP
Model Context Protocol server for RPG Maker MV project management. Provides 102 tools for actors, classes, skills, items, weapons, armors, enemies, states, troops, common events, maps, events, tilesets, animations, system settings, project management, AI vision analysis, offline ASCII map rendering, and knowledge-driven map generation
MCP LLMS-TXT Documentation Server
An MCP server that enables users to fetch and audit documentation from user-defined llms.txt index files. It provides tools to list documentation sources and retrieve content from specific URLs with built-in domain access controls for secure context retrieval.
Geond Agent Protocol
Local-first shared memory and coordination layer for AI coding agents, with repository evidence, reservations, handoffs, code graph context, and dashboard review backed by PostgreSQL/pgvector.
dcc-mcp-shogun
A local-first MCP adapter for Vicon Shogun Post that provides read-only inspection of motion-capture scenes, including subject markers and trajectory queries via the official SDK.
DevEyes
DevEyes is a Model Context Protocol (MCP) server that captures screenshots from your local development environment and automatically optimizes them for LLM consumption.