@feedmob/github-issues 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -56
- package/dist/common/version.js +1 -1
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -1,86 +1,147 @@
|
|
|
1
1
|
# FeedMob GitHub Issues MCP Server
|
|
2
2
|
|
|
3
|
-
A GitHub Issues MCP server customized for the FeedMob team
|
|
3
|
+
A GitHub Issues MCP server customized for the FeedMob team.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
- Node.js 18+
|
|
7
|
+
- npm 9+
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
Run inside `src/github-issues/`:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install
|
|
14
|
+
npm run build
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## MCP Server Configuration Guide
|
|
18
|
+
|
|
19
|
+
### Environment Variables
|
|
20
|
+
|
|
21
|
+
- `GITHUB_PERSONAL_ACCESS_TOKEN`:
|
|
22
|
+
- Recommended for all GitHub operations.
|
|
23
|
+
- Required for private repositories and write actions (`create_issue`, `update_issue`, `add_issue_comment`).
|
|
24
|
+
- `GITHUB_DEFAULT_OWNER`:
|
|
25
|
+
- Optional default owner for issue create/update flows.
|
|
26
|
+
- Can be omitted if you always pass `owner` explicitly in tool input.
|
|
27
|
+
- `AI_API_URL`:
|
|
28
|
+
- Required by FeedMob API-backed features:
|
|
29
|
+
- `search_issues`
|
|
30
|
+
- `get_issues`
|
|
31
|
+
- `sync_latest_issues`
|
|
32
|
+
- resource `issues/search_schema`
|
|
33
|
+
- `AI_API_TOKEN`:
|
|
34
|
+
- Bearer token for the FeedMob API above.
|
|
35
|
+
|
|
36
|
+
### Example MCP Client Config (stdio)
|
|
37
|
+
|
|
38
|
+
Use the built artifact (`dist/index.js`) after `npm run build`:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"feedmob-github-issues": {
|
|
44
|
+
"command": "npx",
|
|
45
|
+
"args": [
|
|
46
|
+
"-y",
|
|
47
|
+
"@feedmob/github-issues"
|
|
48
|
+
],
|
|
49
|
+
"env": {
|
|
50
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx",
|
|
51
|
+
"GITHUB_DEFAULT_OWNER": "feedmob",
|
|
52
|
+
"AI_API_URL": "https://your-feedmob-api.example.com",
|
|
53
|
+
"AI_API_TOKEN": "your-feedmob-api-token"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Local Development Run (without build)
|
|
61
|
+
|
|
62
|
+
From repo root:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx tsx src/github-issues/index.ts
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Or from `src/github-issues`:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npx tsx index.ts
|
|
72
|
+
```
|
|
4
73
|
|
|
5
74
|
## Tools
|
|
6
75
|
|
|
7
76
|
### `search_issues`
|
|
8
|
-
- Search GitHub
|
|
77
|
+
- Search GitHub issues through FeedMob API.
|
|
9
78
|
- Input parameters:
|
|
10
|
-
- `scheam` (string, required): Get from
|
|
11
|
-
- `start_date` (string): Issue creation start date
|
|
12
|
-
- `end_date` (string): Issue creation end date
|
|
13
|
-
- `status` (optional string):
|
|
79
|
+
- `scheam` (string, required): Get from resource `issues/search_schema`.
|
|
80
|
+
- `start_date` (string): Issue creation start date.
|
|
81
|
+
- `end_date` (string): Issue creation end date.
|
|
82
|
+
- `status` (optional string): For example `open`, `closed`.
|
|
14
83
|
- `repo` (optional string)
|
|
15
|
-
- `users` (optional string[]):
|
|
16
|
-
- `team` (optional string):
|
|
17
|
-
-
|
|
84
|
+
- `users` (optional string[]): User list.
|
|
85
|
+
- `team` (optional string): For example `Star`, `Mighty`.
|
|
86
|
+
- `title` (optional string): Fuzzy title match.
|
|
87
|
+
- `labels` (optional string[]): Labels filter.
|
|
88
|
+
- `score_status` (optional string)
|
|
89
|
+
- `fields` (string[], required): Response fields to return.
|
|
18
90
|
|
|
19
91
|
### `create_issue`
|
|
20
|
-
- Create a new
|
|
92
|
+
- Create a new issue in a GitHub repository.
|
|
21
93
|
- Input parameters:
|
|
22
|
-
- `owner` (optional string): Repository owner
|
|
23
|
-
- `repo` (string, required): Repository name
|
|
24
|
-
- `title` (string, required): Issue title
|
|
25
|
-
- `body` (optional string): Issue description
|
|
26
|
-
- `assignees` (optional string[]): Usernames to assign
|
|
27
|
-
- `labels` (optional string[]): Labels to add
|
|
28
|
-
- `milestone` (optional number): Milestone number
|
|
29
|
-
- Returns: Created Issue details
|
|
94
|
+
- `owner` (optional string): Repository owner. Falls back to `GITHUB_DEFAULT_OWNER`.
|
|
95
|
+
- `repo` (string, required): Repository name.
|
|
96
|
+
- `title` (string, required): Issue title.
|
|
97
|
+
- `body` (optional string): Issue description.
|
|
98
|
+
- `assignees` (optional string[]): Usernames to assign.
|
|
99
|
+
- `labels` (optional string[]): Labels to add.
|
|
100
|
+
- `milestone` (optional number): Milestone number.
|
|
30
101
|
|
|
31
102
|
### `update_issue`
|
|
32
|
-
- Update an existing
|
|
103
|
+
- Update an existing issue in a GitHub repository.
|
|
33
104
|
- Input parameters:
|
|
34
|
-
- `owner` (string, required): Repository owner
|
|
35
|
-
- `repo` (string, required): Repository name
|
|
36
|
-
- `issue_number` (number, required): Issue number to update
|
|
37
|
-
- `title` (optional string): New title
|
|
38
|
-
- `body` (optional string): New description
|
|
39
|
-
- `state` (optional string):
|
|
40
|
-
- `labels` (optional string[]): New labels
|
|
41
|
-
- `assignees` (optional string[]): New assignees
|
|
42
|
-
- `milestone` (optional number): New milestone number
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- Get details of a specific Issue in a repository
|
|
105
|
+
- `owner` (string, required): Repository owner.
|
|
106
|
+
- `repo` (string, required): Repository name.
|
|
107
|
+
- `issue_number` (number, required): Issue number to update.
|
|
108
|
+
- `title` (optional string): New title.
|
|
109
|
+
- `body` (optional string): New description.
|
|
110
|
+
- `state` (optional string): `open` or `closed`.
|
|
111
|
+
- `labels` (optional string[]): New labels.
|
|
112
|
+
- `assignees` (optional string[]): New assignees.
|
|
113
|
+
- `milestone` (optional number): New milestone number.
|
|
114
|
+
|
|
115
|
+
### `get_issues`
|
|
116
|
+
- Fetch comments for multiple issues in bulk through FeedMob API.
|
|
47
117
|
- Input parameters:
|
|
48
|
-
- `
|
|
49
|
-
- `
|
|
50
|
-
- `issue_number` (number, required): Issue number to retrieve
|
|
51
|
-
- Returns: GitHub Issue object and details
|
|
118
|
+
- `repo_issues` (array, required): Each item includes `repo` and `issue_number`.
|
|
119
|
+
- `comment_count` (string, optional): `all` or a specific count.
|
|
52
120
|
|
|
53
121
|
### `add_issue_comment`
|
|
54
|
-
- Add a comment to an existing
|
|
122
|
+
- Add a comment to an existing issue.
|
|
55
123
|
- Input parameters:
|
|
56
|
-
- `owner` (string, required): Repository owner
|
|
57
|
-
- `repo` (string, required):
|
|
58
|
-
- `issue_number` (number, required): Issue number
|
|
59
|
-
- `body` (string, required): Comment content
|
|
60
|
-
- Returns: Created comment details
|
|
124
|
+
- `owner` (string, required): Repository owner.
|
|
125
|
+
- `repo` (string, required): Repository name.
|
|
126
|
+
- `issue_number` (number, required): Issue number.
|
|
127
|
+
- `body` (string, required): Comment content.
|
|
61
128
|
|
|
62
129
|
### `sync_latest_issues`
|
|
63
|
-
- Sync
|
|
130
|
+
- Sync latest issues data from FeedMob API.
|
|
64
131
|
|
|
65
132
|
## Resources
|
|
66
133
|
|
|
67
134
|
### `issues/search_schema`
|
|
68
|
-
- Provides schema definition for
|
|
135
|
+
- Provides the schema definition for `search_issues`.
|
|
69
136
|
|
|
70
|
-
|
|
71
|
-
For local development, you can run the server using the following commands:
|
|
137
|
+
## Troubleshooting
|
|
72
138
|
|
|
73
|
-
|
|
74
|
-
# Install dependencies
|
|
75
|
-
npm install
|
|
139
|
+
### `Server does not support completions (required for completion/complete)`
|
|
76
140
|
|
|
77
|
-
|
|
78
|
-
npm run build
|
|
141
|
+
Cursor (and other MCP clients using protocol 2025-11-25) may request the `completion/complete` capability. FastMCP 2.1 uses `@modelcontextprotocol/sdk`; SDK **1.22.0+** requires the server to advertise the completions capability when registering a completion handler, but FastMCP does not set it, so the server crashes on start.
|
|
79
142
|
|
|
80
|
-
|
|
81
|
-
npx tsx src/github-issues/index.ts
|
|
82
|
-
```
|
|
143
|
+
**Fix:** This package pins the SDK to **1.21.2** via `overrides` in `package.json`. After pulling, run `npm install` in `src/github-issues/` so the override is applied. If you use `npx -y @feedmob/github-issues`, reinstall or use the local build: `node /path/to/fm-mcp-servers/src/github-issues/dist/index.js`.
|
|
83
144
|
|
|
84
|
-
|
|
145
|
+
### `SyntaxError: Unexpected token ':'` with JSON on stdin
|
|
85
146
|
|
|
86
|
-
|
|
147
|
+
If you see Node parsing the MCP `initialize` JSON as JavaScript (e.g. `Expected ';', '}' or <eof>`), the process is likely being run with **stdin as script** (e.g. `node -`). The server must be started with **stdio** so that stdin is the MCP channel, not script input. In Cursor MCP config, use a plain command such as `node /absolute/path/to/dist/index.js` or `npx -y @feedmob/github-issues` with no `-` or stdin-eval.
|
package/dist/common/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feedmob/github-issues",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "MCP server for using the GitHub API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "FeedMob",
|
|
@@ -19,11 +19,10 @@
|
|
|
19
19
|
"watch": "tsc --watch"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"date-fns": "^4.1.0",
|
|
23
|
-
"fastmcp": "2.1.0",
|
|
24
|
-
"@modelcontextprotocol/sdk": "1.0.1",
|
|
25
22
|
"@types/node": "^22",
|
|
26
23
|
"@types/node-fetch": "^2.6.12",
|
|
24
|
+
"date-fns": "^4.1.0",
|
|
25
|
+
"fastmcp": "2.1.0",
|
|
27
26
|
"node-fetch": "^3.3.2",
|
|
28
27
|
"universal-user-agent": "^7.0.2",
|
|
29
28
|
"zod": "^3.22.4",
|
|
@@ -36,5 +35,8 @@
|
|
|
36
35
|
"repository": {
|
|
37
36
|
"type": "git",
|
|
38
37
|
"url": "https://github.com/feed-mob/fm-mcp-servers"
|
|
38
|
+
},
|
|
39
|
+
"overrides": {
|
|
40
|
+
"@modelcontextprotocol/sdk": "1.21.2"
|
|
39
41
|
}
|
|
40
42
|
}
|