Skip to main content
Glama

MCP Microsoft Teams Server

by InditexTech
Apache 2.0
318
  • Linux
  • Apple
CONTRIBUTING.md5.09 kB
# Contributing Thank you for your interest in contributing to this project! We value and appreciate any contributions you can make. To maintain a collaborative and respectful environment, please consider the following guidelines when contributing to this project. ## Prerequisites - Before starting to contribute to the code, you must first sign the [Contributor License Agreement (CLA)](https://github.com/InditexTech/foss/blob/main/documents/CLA.pdf). Detailed instructions on how to proceed can be found [here](https://github.com/InditexTech/foss/blob/main/CONTRIBUTING.md). ## How to Contribute 1. Open an issue to discuss and gather feedback on the feature or fix you wish to address. 2. Fork the repository and clone it to your local machine. 3. Create a new branch to work on your contribution: `git checkout -b your-branch-name`. 4. Make the necessary changes in your local branch. 5. Ensure that your code follows the established project style and formatting guidelines. 6. Perform testing to ensure your changes do not introduce errors. 7. Make clear and descriptive commits that explain your changes. 8. Push your branch to the remote repository: `git push origin your-branch-name`. 9. Open a pull request describing your changes and linking the corresponding issue. 10. Await comments and discussions on your pull request. Make any necessary modifications based on the received feedback. 11. Once your pull request is approved, your contribution will be merged into the main branch. ## Contribution Guidelines - All contributors are expected to follow the project's [code of conduct](CODE_of_CONDUCT.md). Please be respectful and considerate towards other contributors. - Before starting work on a new feature or fix, check existing [issues](../../issues) and [pull requests](../../pulls) to avoid duplications and unnecessary discussions. - If you wish to work on an existing issue, comment on the issue to inform other contributors that you are working on it. This will help coordinate efforts and prevent conflicts. - It is always advisable to discuss and gather feedback from the community before making significant changes to the project's structure or architecture. - Ensure a clean and organized commit history. Divide your changes into logical and descriptive commits. We recommend to use the [Conventional Commits Specification](https://www.conventionalcommits.org/en/v1.0.0/) - Document any new changes or features you add. This will help other contributors and project users understand your work and its purpose. - Be sure to link the corresponding issue in your pull request to maintain proper tracking of contributions. - Remember to add license and copyright information following the [REUSE Specification](https://reuse.software/spec/#copyright-and-licensing-information). ## Development Make sure that you have: - Read the rest of the [`CONTRIBUTING.md`](CONTRIBUTING.md) sections. - Meet the [prerequisites](#prerequisites). - [uv](https://github.com/astral-sh/uv) installed - [python](https://www.python.org/) 3.10 or later installed - Set up integration with Microsoft Teams by your own means - Run integration tests to verify Microsoft Teams integration Please remember tu run linting locally before committing any changes: ```bash uv run ruff check . --fix uv run ruff format . ``` It is recommended to run a type checker: ```bash uv run pyright ``` ## Technical details This MCP is built using [MCP SDK](https://github.com/modelcontextprotocol/python-sdk) for Python from Anthropic. It uses FastMCP to implement tools offered by the MCP server. This MCP server consumes two Microsoft APIs / frameworks: - [Azure Bot Builder](https://github.com/microsoft/botbuilder-python) for python - [Microsoft Graph SDK](https://github.com/microsoftgraph/msgraph-sdk-python) for python Azure Bot Builder allows a bot (Microsoft Entra ID app) to consume a Microsoft REST API to send messages to channels (but it is not capable of consuming messages because the bot is not deployed in Azure). The REST API client is encapsulated inside the framework classes, and it is not used directly. In order to send messages without actually being deployed in Azure, the bot "continues" a conversation to retrieve the TurnContext instance and perform actions on "activities". This technique is called [proactive messaging](https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages?tabs=python) Replying to messages through bot builder is not possible without the help of [this hack](https://github.com/microsoft/botframework-sdk/issues/6626), because the bot builder framework is not ready for this use (although the internal REST API allows it, and it works like a charm). Azure Bot Builder allows to perform any write operation, but reading messages or previous threads is not possible without a special "migration" permission. Because of that, we have preferred to use Microsoft Graph to read messages. Microsoft Application Entra ID must have been granted permissions to read messages in a channel.

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/InditexTech/mcp-teams-server'

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