Skip to main content
Glama
Ezzeay
by Ezzeay
README.md
#MCP Server

Production-ready TypeScript Model Context Protocol (MCP) server exposing utility, GitHub, and Microsoft Teams tools over stdio.

## Why this repository

- Clean MCP server baseline for internal automation and integrations
- GitHub and Microsoft Teams operational tooling in a single service
- Strict TypeScript setup and minimal runtime surface

## Feature overview

### Utility

- `echo`
- `get_time`

### GitHub tools

- `github_status`
- `github_authenticated_user`
- `github_list_repos`
- `github_create_issue`
- `github_list_issues`
- `github_get_file`
- `github_create_pull_request`
- `github_request`

### Microsoft Teams tools

- `teams_send_message` (webhook)
- `teams_send_card` (adaptive card webhook)
- `teams_graph_status` (Graph API)
- `teams_send_dm` (Graph API)

## Requirements

- Node.js 20+
- npm 10+

## Quick start (Windows)

```powershell
cd mcp-server
npm install
copy .env.example .env
```

Populate `.env` before running.

## Environment variables

### Required for GitHub tools

- `GITHUB_TOKEN`

### Optional for Teams webhook tools

- `TEAMS_WEBHOOK_URL`

### Optional for Teams Graph tools

- `TEAMS_TENANT_ID`
- `TEAMS_CLIENT_ID`
- `TEAMS_CLIENT_SECRET`

## Scripts

- `npm run dev` — development mode with `tsx`
- `npm run build` — compile to `dist/`
- `npm run start` — run compiled server
- `npm run clean` — remove `dist/`
- `npm run inspect` — open MCP inspector

## Run modes

Development:

```bash
npm run dev
```

Build + run:

```bash
npm run build
npm run start
```

MCP stdio command:

```bash
node dist/index.js
```

## Security and compliance

- Do not commit `.env` or secrets
- Use least-privilege credentials for GitHub and Microsoft Graph
- Review [SECURITY.md](SECURITY.md) before production use

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).

## License

Distributed under the MIT License. See [LICENSE](LICENSE).

TDQS

B3.2/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct function: utilities (echo, get_time), GitHub operations (create, list, read, status), and Teams messaging (send, status). The raw github_request is a fallback, but its distinct purpose is clear.

Naming Consistency3/5

Tools use three different prefixes (none, github_, teams_), and within each, naming is mixed: verb_noun (create_issue, send_message) vs. noun-like (authenticated_user, status). The pattern is not fully consistent.

Tool Count5/5

14 tools cover three distinct domains (utilities, GitHub, Teams) without being overwhelming. Each tool serves a clear purpose, and the count feels well-scoped for a multi-service integration.

Completeness3/5

For GitHub, common operations are present but missing updates/deletes and PR merging. For Teams, only sending is available (no reading, listing). The utilities are minimal. Notable gaps exist, but core workflows are covered.

Maintenance

ActivityInactive
ResponsivenessNo issues