@line-harness/mcp-server 0.6.5 → 0.6.7

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/dist/index.js CHANGED
@@ -111,14 +111,14 @@ function truncate(str, max) {
111
111
  function registerSendMessage(server2) {
112
112
  server2.tool(
113
113
  "send_message",
114
- "Send a text or flex message to a specific friend. Use messageType 'flex' for rich card layouts.",
114
+ "Send a text, image, or flex message to a specific friend. Use messageType 'image' for standalone image messages, 'flex' for rich card layouts.",
115
115
  {
116
116
  friendId: z.string().describe("The friend's ID to send the message to"),
117
117
  content: z.string().describe(
118
- "Message content. For text: plain string. For flex: JSON string of LINE Flex Message."
118
+ "Message content. For text: plain string. For image: JSON string with originalContentUrl and previewImageUrl (both HTTPS URLs). For flex: JSON string of LINE Flex Message."
119
119
  ),
120
- messageType: z.enum(["text", "flex"]).default("text").describe(
121
- "Message type: 'text' for plain text, 'flex' for Flex Message JSON"
120
+ messageType: z.enum(["text", "image", "flex"]).default("text").describe(
121
+ "Message type: 'text' for plain text, 'image' for standalone image, 'flex' for Flex Message JSON"
122
122
  ),
123
123
  altText: z.string().optional().describe(
124
124
  "Custom notification preview text for Flex Messages (shown on lock screen). If omitted, auto-extracted from Flex content."
@@ -779,17 +779,19 @@ import { z as z9 } from "zod";
779
779
  function registerListFriends(server2) {
780
780
  server2.tool(
781
781
  "list_friends",
782
- "List friends with optional filtering by tag. Returns paginated results with friend details.",
782
+ "List friends with optional filtering by tag or name search. Returns paginated results with friend details.",
783
783
  {
784
+ search: z9.string().optional().describe("Search friends by display name (partial match)"),
784
785
  tagId: z9.string().optional().describe("Filter by tag ID"),
785
786
  limit: z9.number().default(20).describe("Number of friends to return (max 100)"),
786
787
  offset: z9.number().default(0).describe("Offset for pagination"),
787
788
  accountId: z9.string().optional().describe("LINE account ID (uses default if omitted)")
788
789
  },
789
- async ({ tagId, limit, offset, accountId }) => {
790
+ async ({ search, tagId, limit, offset, accountId }) => {
790
791
  try {
791
792
  const client = getClient();
792
793
  const result = await client.friends.list({
794
+ search,
793
795
  tagId,
794
796
  limit,
795
797
  offset,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@line-harness/mcp-server",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "line-harness-mcp": "./dist/index.js"
@@ -9,7 +9,7 @@
9
9
  "dependencies": {
10
10
  "@modelcontextprotocol/sdk": "^1.12.1",
11
11
  "zod": "^3.24.4",
12
- "@line-harness/sdk": "0.2.3"
12
+ "@line-harness/sdk": "0.2.4"
13
13
  },
14
14
  "devDependencies": {
15
15
  "tsup": "^8.4.0",
@@ -5,8 +5,9 @@ import { getClient } from "../client.js";
5
5
  export function registerListFriends(server: McpServer): void {
6
6
  server.tool(
7
7
  "list_friends",
8
- "List friends with optional filtering by tag. Returns paginated results with friend details.",
8
+ "List friends with optional filtering by tag or name search. Returns paginated results with friend details.",
9
9
  {
10
+ search: z.string().optional().describe("Search friends by display name (partial match)"),
10
11
  tagId: z.string().optional().describe("Filter by tag ID"),
11
12
  limit: z
12
13
  .number()
@@ -18,10 +19,11 @@ export function registerListFriends(server: McpServer): void {
18
19
  .optional()
19
20
  .describe("LINE account ID (uses default if omitted)"),
20
21
  },
21
- async ({ tagId, limit, offset, accountId }) => {
22
+ async ({ search, tagId, limit, offset, accountId }) => {
22
23
  try {
23
24
  const client = getClient();
24
25
  const result = await client.friends.list({
26
+ search,
25
27
  tagId,
26
28
  limit,
27
29
  offset,
@@ -6,19 +6,19 @@ import { autoTrackUrls } from "./auto-track-urls.js";
6
6
  export function registerSendMessage(server: McpServer): void {
7
7
  server.tool(
8
8
  "send_message",
9
- "Send a text or flex message to a specific friend. Use messageType 'flex' for rich card layouts.",
9
+ "Send a text, image, or flex message to a specific friend. Use messageType 'image' for standalone image messages, 'flex' for rich card layouts.",
10
10
  {
11
11
  friendId: z.string().describe("The friend's ID to send the message to"),
12
12
  content: z
13
13
  .string()
14
14
  .describe(
15
- "Message content. For text: plain string. For flex: JSON string of LINE Flex Message.",
15
+ "Message content. For text: plain string. For image: JSON string with originalContentUrl and previewImageUrl (both HTTPS URLs). For flex: JSON string of LINE Flex Message.",
16
16
  ),
17
17
  messageType: z
18
- .enum(["text", "flex"])
18
+ .enum(["text", "image", "flex"])
19
19
  .default("text")
20
20
  .describe(
21
- "Message type: 'text' for plain text, 'flex' for Flex Message JSON",
21
+ "Message type: 'text' for plain text, 'image' for standalone image, 'flex' for Flex Message JSON",
22
22
  ),
23
23
  altText: z
24
24
  .string()