frank_mcp

lohnn/frank_mcp

3.1

If you are the rightful owner of frank_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 dayong@mcphub.com.

Frank is a simple MCP server designed to interact with Azure DevOps and the Sabis restaurant at Skandia, utilizing an LLM like Gemini to perform actions.

Tools
6
Resources
0
Prompts
0

Frank MCP Server

Frank is a simple MCP server that provides a set of tools for interacting with Azure DevOps and the Sabis restaurant at Skandia. It is designed to be used with an LLM like Gemini, allowing the LLM to perform actions on your behalf.

Getting Started

To get started with Frank, you need to have the Dart SDK installed. You can find instructions on how to install it on the official Dart website.

Once you have the Dart SDK installed, you can clone this repository and install the dependencies:

git clone <repository-url>
cd <repository-directory>
dart pub get

Configuration

This server requires the following environment variables to be set for the Azure DevOps integration. You can either set them in your environment or create a .env file in the root of the project.

  • AZURE_DEVOPS_PAT: Your Personal Access Token for Azure DevOps.
  • AZURE_DEVOPS_ORGANIZATION: The name of your Azure DevOps organization.
  • AZURE_DEVOPS_PROJECT: The name of your Azure DevOps project.
  • AZURE_DEVOPS_DEFAULT_REPOSITORY: The default repository to use when none is provided.

Example .env file

AZURE_DEVOPS_PAT=your_personal_access_token
AZURE_DEVOPS_ORGANIZATION=your_organization
AZURE_DEVOPS_PROJECT=your_project
AZURE_DEVOPS_DEFAULT_REPOSITORY=your_default_repository

Tools

get_sabis_lunch_for_week

This tool gets the lunch menu for the entire week from Sabis.

Input:

  • None

Output:

  • A string containing the lunch menu for the entire week.

get_sabis_lunch

This tool gets the lunch menu from Sabis for a given day.

Input:

  • day (string, optional): The day of the week to get the lunch for in Swedish. Defaults to today.

Output:

  • A string containing the lunch menu for the specified day.

get_user_stories_by_release

Finds all user story IDs in Azure DevOps that are associated with a specific release tag.

Input:

  • releaseTag (string, required): The release tag to search for.

Output:

  • A list of user story IDs.

update_user_stories_release

Updates the release tag for a list of user stories.

Input:

  • userStoryIds (list of integers, required): The IDs of the user stories to update.
  • newReleaseTag (string, required): The new release tag to set.

Output:

  • A status message confirming the updates.

get_prs_with_tag

Gets pull requests with a specific tag from Azure DevOps.

Input:

  • tag (string, required): The pull request tag.
  • repository (string, optional): The repository to search in. If not provided, the AZURE_DEVOPS_DEFAULT_REPOSITORY environment variable will be used.

Output:

  • A list of pull requests that match the given tag.

what_should_i_do_now

Gives you a suggestion on what you should do right now, based on the time of day.

Input:

  • None

Output:

  • A string with a suggestion.

Setting up with an LLM

To use this MCP server with an LLM like Gemini, you need to configure the LLM to use the server as a tool. This is usually done by providing the command to run the server to the LLM's tool configuration.

For example, to run this server, you would use the following command:

dart run bin/server.dart

You would provide this command to your LLM's tool configuration. The LLM will then be able to use the tools provided by this server.

Example .gemini/settings.json

To add this server to your Gemini configuration, you can add the following to your ~/.gemini/settings.json file:

{
  "mcpServers": {
    "frank": {
      "command": "dart",
      "args": [
        "/path/to/repo/bin/server.dart"
      ]
    }
  }
}

Testing with the MCP Inspector

You can test the server and its tools using the MCP Inspector.

In a terminal, run the MCP Inspector:

npx @modelcontextprotocol/inspector

This will open a web-based inspector. From there, you can start the server by providing the command dart with the argument path/to/server/bin/server.dart, and then connect to it to call its tools.