@markmnl/fmsg-mcp 0.1.4 → 0.2.1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +128 -26
  3. package/ROADMAP.md +52 -0
  4. package/SECURITY.md +78 -0
  5. package/dist/auth.d.ts +14 -6
  6. package/dist/auth.js +115 -49
  7. package/dist/client/client.d.ts +34 -24
  8. package/dist/client/client.js +152 -105
  9. package/dist/client/errors.d.ts +19 -0
  10. package/dist/client/errors.js +51 -0
  11. package/dist/client/index.d.ts +1 -0
  12. package/dist/client/stream.d.ts +12 -0
  13. package/dist/client/stream.js +83 -0
  14. package/dist/client/token-provider.d.ts +27 -0
  15. package/dist/client/token-provider.js +54 -0
  16. package/dist/client/types.d.ts +8 -4
  17. package/dist/client/url.d.ts +4 -0
  18. package/dist/client/url.js +35 -0
  19. package/dist/client/ws.d.ts +2 -1
  20. package/dist/client/ws.js +9 -3
  21. package/dist/config.d.ts +9 -3
  22. package/dist/config.js +21 -6
  23. package/dist/context.d.ts +6 -3
  24. package/dist/context.js +9 -2
  25. package/dist/download.d.ts +11 -0
  26. package/dist/download.js +34 -0
  27. package/dist/errors.d.ts +1 -1
  28. package/dist/errors.js +18 -26
  29. package/dist/http.d.ts +4 -3
  30. package/dist/http.js +246 -28
  31. package/dist/index.js +27 -11
  32. package/dist/instructions.js +12 -5
  33. package/dist/oauth/config.d.ts +11 -0
  34. package/dist/oauth/config.js +46 -0
  35. package/dist/oauth/errors.d.ts +18 -0
  36. package/dist/oauth/errors.js +40 -0
  37. package/dist/oauth/issuer.d.ts +31 -0
  38. package/dist/oauth/issuer.js +185 -0
  39. package/dist/oauth/provider.d.ts +23 -0
  40. package/dist/oauth/provider.js +95 -0
  41. package/dist/oauth/scopes.d.ts +6 -0
  42. package/dist/oauth/scopes.js +31 -0
  43. package/dist/render.d.ts +6 -1
  44. package/dist/render.js +27 -11
  45. package/dist/resources.js +18 -9
  46. package/dist/server.js +4 -0
  47. package/dist/thread.js +15 -14
  48. package/dist/tools/common.js +8 -3
  49. package/dist/tools/download.d.ts +2 -0
  50. package/dist/tools/download.js +38 -0
  51. package/dist/tools/identity.js +1 -1
  52. package/dist/tools/list.js +3 -3
  53. package/dist/tools/read.js +26 -43
  54. package/dist/tools/save.d.ts +2 -0
  55. package/dist/tools/save.js +84 -0
  56. package/dist/tools/send.js +9 -13
  57. package/dist/tools/wait.js +8 -6
  58. package/dist/wait.d.ts +1 -1
  59. package/dist/wait.js +161 -67
  60. package/docs/http-deployment.md +81 -0
  61. package/docs/oauth.md +169 -0
  62. package/docs/token-providers.md +94 -0
  63. package/package.json +8 -1
  64. package/server.json +54 -4
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@markmnl/fmsg-mcp",
3
3
  "mcpName": "io.github.markmnl/fmsg-mcp",
4
- "version": "0.1.4",
4
+ "version": "0.2.1",
5
5
  "description": "MCP server for fmsg: send and receive federated messages from any AI agent via a deployed fmsg Web API",
6
6
  "type": "module",
7
7
  "license": "MIT",
@@ -42,6 +42,12 @@
42
42
  "dist/**/*.js",
43
43
  "dist/**/*.d.ts",
44
44
  "README.md",
45
+ "SECURITY.md",
46
+ "CHANGELOG.md",
47
+ "ROADMAP.md",
48
+ "docs/http-deployment.md",
49
+ "docs/token-providers.md",
50
+ "docs/oauth.md",
45
51
  "LICENSE",
46
52
  "server.json"
47
53
  ],
@@ -61,6 +67,7 @@
61
67
  },
62
68
  "dependencies": {
63
69
  "@modelcontextprotocol/server": "^2.0.0",
70
+ "jose": "^6.2.12",
64
71
  "ws": "^8.21.3",
65
72
  "zod": "^4.5.4"
66
73
  },
package/server.json CHANGED
@@ -1,25 +1,27 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.markmnl/fmsg-mcp",
4
- "description": "Send and receive fmsg federated messages from any AI agent via a deployed fmsg Web API",
4
+ "title": "fmsg",
5
+ "description": "Federated messaging with your fmsg hosting provider. Connect with OAuth or an API key.",
6
+ "websiteUrl": "https://github.com/markmnl/fmsg-mcp#readme",
5
7
  "repository": {
6
8
  "url": "https://github.com/markmnl/fmsg-mcp",
7
9
  "source": "github"
8
10
  },
9
- "version": "0.1.4",
11
+ "version": "0.2.1",
10
12
  "packages": [
11
13
  {
12
14
  "registryType": "npm",
13
15
  "registryBaseUrl": "https://registry.npmjs.org",
14
16
  "identifier": "@markmnl/fmsg-mcp",
15
- "version": "0.1.4",
17
+ "version": "0.2.1",
16
18
  "transport": {
17
19
  "type": "stdio"
18
20
  },
19
21
  "environmentVariables": [
20
22
  {
21
23
  "name": "FMSG_API_URL",
22
- "description": "Base URL of the fmsg Web API",
24
+ "description": "Base URL of your hosting provider's or self-hosted fmsg Web API",
23
25
  "isRequired": true
24
26
  },
25
27
  {
@@ -32,6 +34,54 @@
32
34
  "name": "FMSG_DEFAULT_DOMAIN",
33
35
  "description": "Optional: lets short names resolve to @name@<domain>",
34
36
  "isRequired": false
37
+ },
38
+ {
39
+ "name": "FMSG_MCP_DOWNLOAD_DIR",
40
+ "description": "Optional local folder enabling streamed attachment saves over stdio",
41
+ "isRequired": false
42
+ }
43
+ ]
44
+ }
45
+ ],
46
+ "remotes": [
47
+ {
48
+ "type": "streamable-http",
49
+ "url": "https://{oauth_mcp_endpoint}",
50
+ "variables": {
51
+ "oauth_mcp_endpoint": {
52
+ "description": "OAuth MCP endpoint from your fmsg hosting provider: hostname and path without https://. Sign in through your AI host; no API key needed.",
53
+ "isRequired": true,
54
+ "format": "string",
55
+ "placeholder": "mcp.example.com/mcp"
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "type": "streamable-http",
61
+ "url": "https://{api_key_mcp_endpoint}",
62
+ "variables": {
63
+ "api_key_mcp_endpoint": {
64
+ "description": "API-key MCP endpoint from your fmsg hosting provider: hostname and path without https://. Use an endpoint that accepts your key.",
65
+ "isRequired": true,
66
+ "format": "string",
67
+ "placeholder": "mcp.example.com/mcp"
68
+ }
69
+ },
70
+ "headers": [
71
+ {
72
+ "name": "Authorization",
73
+ "description": "Your fmsg API key for the selected MCP endpoint",
74
+ "isRequired": true,
75
+ "isSecret": true,
76
+ "value": "Bearer {api_key}",
77
+ "variables": {
78
+ "api_key": {
79
+ "description": "API key accepted by this endpoint's fmsg Web API, starting with fmsgk_",
80
+ "isRequired": true,
81
+ "isSecret": true,
82
+ "format": "string"
83
+ }
84
+ }
35
85
  }
36
86
  ]
37
87
  }